複数の条件を持つデータから配列数式を抽出する

複数の条件を持つデータから配列数式を抽出する

ラップトップの詳細を含む次の表があります

(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 RAMCPUi5-

上記の表では、私は次のように返答することを期待しています

(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を押して挿入>ピボットテーブルに進みます。

ここでフィルターとして選択しRamCPU Familyラベルフィールドに追加しLaptop NameCPU

ここに画像の説明を入力してください

翻訳:=LEFT(RIGHT(C2;8);2)

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これは、関与せずに私が行っているアプローチですVBA

乾杯。

関連情報