ラップトップの詳細を含む次の表があります
(Laptops)
Name | RAM | CPU
===========================================
Laptop Example 1 | 4 | Intel® Core™ i3-8130U
Laptop Example 2 | 8 | Intel® Core™ i5-8250U
Laptop Example 3 | 16 | Intel® Core™ i5-8250U
Laptop Example 4 | 8 | Intel® Core™ i7-8550U
Laptop Example 5 | 8 | Intel® Core™ i5-8265U
...
複数の条件を使用して、ラップトップの を単純に返す配列を作成したいと考えていました。 この場合は、とを含むname
ラップトップの名前を返したいと思います。8
RAM
CPU
i5-
上記の表では、私は次のように返答することを期待しています
(Array)
Name
======================
Laptop Example 2
Laptop Example 5
配列数式の経験はあまりありませんが、すべてのラップトップ名を返すこともできました。8
RAM
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(Laptops!$B$2:$B$500=8,ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),"")
またはCPU
含むi5-
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(IFERROR(SEARCH("i5-", Laptops!$C$2:$C$500), 0),ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),"")
しかし、関数を使用して両方を組み合わせることはできませんかAND
? 試してみました...
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(AND(Laptops!$B$2:$B$500="8",IFERROR(SEARCH("i5-", Laptops!$C$2:$C$500), 0),ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),""))
ただし、何も返されません。ご協力いただければ幸いです。
答え1
ピボット テーブルを使用して、RAM でフィルターし、CPU 列にフィルターを適用します。
それを実行するための助けここ
答え2
あなたの質問に対する私のアプローチは次のようになります
1.- 補助柱をいくつか入手する
「CPU ファミリー」列を追加します
=left(right(C2;8);2)
フィルタリング時にRAMを表示したい場合は、Ramフィールドを複製することができます。
=B2&"gb"
2.- ピボットテーブルを挿入する
データの全範囲を選択し、CTRL+SHIFT+Spaceを押して挿入>ピボットテーブルに進みます。
ここでフィルターとして選択しRam
、CPU Family
ラベルフィールドに追加しLaptop Name
てCPU
翻訳:=LEFT(RIGHT(C2;8);2)
これは、関与せずに私が行っているアプローチですVBA
乾杯。