Excel (一般機能)

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

 
(Windows 11 Home : Excel 2021)
XLOOKUPで検索列を変えたい
投稿日時: 22/11/13 12:59:56
投稿者: toma100

こんにちは、よろしくお願いいたいます!
以下のように、検索に田中と入力したら
下の表から1行分抽出するには
=XLOOKUP(B1,B8:B11,A8:E11) の数式でできますが
検索を東京とか電話番号に変更しても抽出できるようにするには
=XLOOKUP(B1,B8:B11,A8:E11)の数式をどう変更すれば可能でしょうか??
 
A1    B1
検索    田中            
                
No.    氏名    年齢    住所    電話
3    田中    25    京都    090-1111-1113

=XLOOKUP(B1,B8:B11,A8:E11)                
 
表                
No.    氏名    年齢    住所    電話
1    大石    50    東京    090-1111-1111
2    遠藤    28    大阪    090-1111-1112
3    田中    25    京都    090-1111-1113
4    佐藤    60    東京    090-1111-1114
 
よろしく」お願いいたします(._.)

回答
投稿日時: 22/11/13 13:12:23
投稿者: taitani
投稿者のウェブサイトに移動

=XLOOKUP($B$1,$B$2:$B$5,$A$2:$E$5,"error",0)
  
で可能ではないでしょうか。

回答
投稿日時: 22/11/13 13:37:33
投稿者: taitani
投稿者のウェブサイトに移動

失礼、修正します。
=XLOOKUP($B$1,$B$8:$B$11,$A$8:$E$11,"error",0)

投稿日時: 22/11/13 13:37:41
投稿者: toma100

taitani様
 
ありがとうございます!
 
検索を氏名だけならできるのですが
B1の検索を電話とか住所とかに変更したときにでも
抽出できるようにしたいのです
説明不足で申し訳ございません!
つまり、検索する列が自動で変更できるように。。

回答
投稿日時: 22/11/13 13:41:42
投稿者: taitani
投稿者のウェブサイトに移動

ああ、さらに失礼。。。

回答
投稿日時: 22/11/13 13:45:23
投稿者: 半平太

>検索を東京
東京は、リストに2つありますが、どんな結果を想定しているんですか?
 
※氏名が都道府県名と同じなんてケースはない、と言う前提ですよね?

投稿日時: 22/11/13 14:10:19
投稿者: toma100

半平太様、ありがとうございます!
 
はい、サンプルが間違ってました
氏名が都道府県名と同じなんてケースはない、と言う前提です、申し訳ございません
よろしくお願いいたします!
 
A1    B1
検索 田中
                 
No. 氏名 年齢 住所 電話
3 田中 25 京都 090-1111-1113

=XLOOKUP(B1,B8:B11,A8:E11)
  

No. 氏名 年齢 住所 電話
1 大石 50 東京 090-1111-1111
2 遠藤 28 大阪 090-1111-1112
3 田中 25 京都 090-1111-1113
4 佐藤 60 神戸 090-1111-1114

回答
投稿日時: 22/11/13 14:21:34
投稿者: hatena
投稿者のウェブサイトに移動

下記でどうでしょう。
 

=FILTER(A8:E11,(B8:B11=B1)+(D8:D11=B1)+(E8:E11=B1),"")

 
もし、合致するデータが複数ある場合は、スピルして出力します。

回答
投稿日時: 22/11/13 14:21:37
投稿者: taitani
投稿者のウェブサイトに移動

もっと簡単な方法があると思いますが、取り急ぎ。。。
’---------------------
=SWITCH(TRUE,
ISNUMBER(MATCH($B$1,A$8:A$11,0)),XLOOKUP(B1,A8:A11,A8:E11),
ISNUMBER(MATCH($B$1,B$8:B$11,0)),XLOOKUP(B1,B8:B11,A8:E11),
ISNUMBER(MATCH($B$1,C$8:C$11,0)),XLOOKUP(B1,C8:C11,A8:E11),
ISNUMBER(MATCH($B$1,D$8:D$11,0)),XLOOKUP(B1,D8:D11,A8:E11),
ISNUMBER(MATCH($B$1,E$8:E$11,0)),XLOOKUP(B1,B8:E11,E8:E11))
’---------------------

回答
投稿日時: 22/11/13 14:22:11
投稿者: taitani
投稿者のウェブサイトに移動

ああ、hatena さん素晴らしい。。。

投稿日時: 22/11/13 14:37:29
投稿者: toma100

hatena様、taitani様へ
 
ありがとうございます!
実際は15列ぐらいあるので、長くなってしまい難しいです。。
説明不足でもうしわけございません(._.)
やはり、すべての列を範囲選択して求めるのはできないでしょうか・・・

回答
投稿日時: 22/11/13 15:23:49
投稿者: んなっと

●B1に田中と入力
A3
=LET(x,A8:E11,y,A1:E1,FILTER(x,BYROW(x,LAMBDA(r,AND(IF(y="","",r)=y))),""))
 
   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
 
●D1に東京と入力
 
   A   B   C   D       E
 1          東京        
 2 No. 氏名 年齢 住所      電話
 3  1 大石  50 東京 090-1111-1111
 4  4 佐藤  60 東京 090-1111-1114
 
●B1に佐藤、D1に東京と入力
 
   A   B   C   D       E
1    佐藤    東京        
2 No. 氏名 年齢 住所      電話
3  4 佐藤  60 東京 090-1111-1114

回答
投稿日時: 22/11/13 15:36:52
投稿者: んなっと

左のA1に検索列を入力(または入力規則から選択)する方法もあると思います。
 
●A1に住所、B1に東京と入力
A3
=FILTER(A8:E11,XLOOKUP(A1,A7:E7,A8:E11)=B1,"")
 
     A   B   C   D       E
 1 住所▼ 東京              
 2   No. 氏名 年齢 住所      電話
 3    1 大石  50 東京 090-1111-1111
 4    4 佐藤  60 東京 090-1111-1114

投稿日時: 22/11/13 15:59:31
投稿者: toma100

んなっと様、ありがとうございました!
 
2つ目の簡単な数式の方を使いました、できました!!
いつもありがとうございます(._.)