Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
「XLOOKUPで検索列を変えたい」の toma100 さんへ
投稿日時: 22/11/13 16:42:59
投稿者: hatena
投稿者のウェブサイトに移動

解決済みですが、せっかく作成したので、置いておきます。
 

   A   B   C   D       E
 1 検索値 田中              
 2 No.  氏名 年齢 住所      電話
 3  3  田中  25 京都 090-1111-1113
 4                   
 5                   
 6                   
 7 No.  氏名 年齢 住所      電話
 8  1  大石  50 東京 090-1111-1111
 9  2  遠藤  28 大阪 090-1111-1112
10  3  田中  25 京都 090-1111-1113
11  4  佐藤  60 東京 090-1111-1114

 
 
A3セル
=FILTER(A8:E11,BYROW(B8:E11=B1,LAMBDA(a,OR(a))),"")

 
B1に入力した値と一致するセルの行データを出力します。
検索範囲はB8:E11
検索範囲が15列なら、B8:P11 というように広げてください。
 

投稿日時: 22/11/13 16:47:40
投稿者: hatena
投稿者のウェブサイトに移動

もし、検索列がとびとびの場合は、
 

=FILTER(A8:E11,BYROW(HSTACK(B8:B11,D8:E11)=B1,LAMBDA(a,OR(a))),"")

 
B8:B11,D8:E11の範囲が検索対象になります。

投稿日時: 22/11/13 16:50:24
投稿者: hatena
投稿者のウェブサイトに移動

HSTACK は最近実装されたので、Excel 2021だと使えないかもしれない。

回答
投稿日時: 22/11/13 18:01:27
投稿者: んなっと

COUNTIFを使えばワイルドカード * ? も使用できますね。
 
   A   B   C   D       E
1    *藤              
2 No. 氏名 年齢 住所      電話
3  2 遠藤  28 大阪 090-1111-1112
4  4 佐藤  60 東京 090-1111-1114
 
A3
=FILTER(A8:E11,BYROW(A8:E11,LAMBDA(r,COUNTIF(r,B1))),"")

投稿日時: 22/11/14 09:14:07
投稿者: hatena
投稿者のウェブサイトに移動

んなっとさん
そうですね。
Excelの新関数は工夫するといろいろ使い勝手がよくて楽しいですね。
 
これで閉じます。