[[20250714082701]] 『XLOOKUP関数』(あらし) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『XLOOKUP関数』(あらし)

XLOOKUPを使った関数について教えてください。
参照先のリストのA列にブランクがあるときだけ名前が反映されません。
下記でいうと、参照先リストの名前=秋田 の場合、計算式が入っているるシートのE列に秋田を表示させたいのですが、
A列がブランクになっているので結果が0となってしまいます。
この場合、ブランクの場合の関数を入れるのだと思いますが、私では分かりません。
ご教示いただけますと助かります。
 

XLOOKUP計算式
=XLOOKUP(C3,'リスト'!$A$2:$A$10,'リスト'!$C$2:$C$10,XLOOKUP(D3,'リスト'!$B$2:$B$10,'リスト'!$C$2:$C$10),1)
 

計算式が入っているシート
ID-1   ID-2    名前
(C列)   (D列)   (E列=XLOOKUP計算式)
aa1          田中
ブランク        0   ←問題のケース

 

参照先のリスト(シート名:リスト)
ID-1    ID-2    名前
(A列)   (B列)   (C列)
aa1    bb1     田中
aa2    bb3     木村
aa4    ブランク    山梨
ブランク  bb9     秋田

よろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


エクセルのバージョンが誤っているとして、↓は【配列】が返ってくる想定なんですよね?
 XLOOKUP(D3,'リスト'!$B$2:$B$10,'リスト'!$C$2:$C$10)

とりあえず入れ子を分解して、想定どおりの結果なのか確認してみてはどうでしょうか?

(もこな2 ) 2025/07/14(月) 08:41:16


失礼。数式を見誤りました。上記はご放念ください。

(もこな2 ) 2025/07/14(月) 08:45:39


 ほぼ質問の内容は見てませんが、こんなことなのかと・・・。

 =XLOOKUP(C3,'リスト'!$A$2:$A$10,'リスト'!$C$2:$C$10,XLOOKUP(D3,'リスト'!$B$2:$B$10,'リスト'!$C$2:$C$10),1)&""

(解散) 2025/07/14(月) 09:29:18


 これってリストシートのブランクって式で""になってるのかな?

 その場合だったら
 =XLOOKUP(C3&"",'リスト'!$A$2:$A$10,'リスト'!$C$2:$C$10,XLOOKUP(D3&"",'リスト'!$B$2:$B$10,'リスト'!$C$2:$C$10),1)

 にしたらどうでしょうか?

 ちなみにリストシートのブランクをセルに何も入力していない状態にしたらあらしさんの式で秋田が返ってきました。
(ノーム) 2025/07/14(月) 09:36:39

 XLOOKUP関数の戻り値はセル参照なので
=ROW(XLOOKUP計算式)
で何行目が返っているか確認して下さい 
(はてな) 2025/07/14(月) 09:54:43

 "秋田"しか返ってこないですねえ。問題の再現ができません。
 リストシートのブランクと書かれているところに何か入っていないですか?
 (失礼ですが、半角スペースを入れていましたとかはないですよね。)

(xyz) 2025/07/14(月) 09:59:00


皆さま、ありがとうございます。

リストシートのブランクのところは何も入力されていません。(本質問のためにブランクと書いただけでして)

数人の方のアドバイスで試しましたが、ダメでした。

リストシートのA列に何も入っていない時だけの問題なのですが、どなたかお分かりになる方はおられますでしょうか。

よろしくお願いいたします。

(あらし) 2025/07/14(月) 10:20:36


 そうでしたか。
 はてなさんの 2025/07/14(月) 09:54:43 コメントへの回答をお願いします。
(xyz) 2025/07/14(月) 10:27:08

 念のため、ISBLANK関数で、検索値のセルや、検索先のブランクになるべきセルの中身を確認されたら
 どうでしょうか。

 また、リストシートの2行目が全て空白の行になっていました、などということはないですね?
 シートの説明にあたっては、行番号も明記されると、お互いに余計な神経を使わなくて済みます。

 それでも解決しなければ、最終手段はISBLANK関数の結果を使ってIFで条件分岐することでしょうか。

(xyz) 2025/07/14(月) 11:03:39


 "秋田"しか返ってこないですねえ。

 C列の値で探してだめなら、さらにD列で検索をかけたいようですが。。。 
 一致モードが1になっています。

 なので、入力した文字列よりもブランクが大きいので、かならずブランクにヒットして"秋田"が返る。

 つまり、D列での検索は行われないのでは?

 想定通りなら、問題はないですけれど。

 ああ、でもUP主の結果はこちらでは再現できていないのだった(^^;
(ゆたか) 2025/07/14(月) 11:29:53

はてなさん

>=ROW(XLOOKUP計算式)
>で何行目が返っているか確認して下さい

秋田の情報のある?D行目の”5”とかえってきます。

(あらし) 2025/07/14(月) 11:56:27


はてなさん
>=ROW(XLOOKUP計算式)
>で何行目が返っているか確認して下さい

秋田の情報のある5行目の”5”とかえってきます。
(あらし) 2025/07/14(月) 11:57:15


 それでは
 =COLUMN(XLOOKUP計算式)
 は何でしょうか。

(xyz) 2025/07/14(月) 12:30:52


(xyz)さん

 =COLUMN(XLOOKUP計算式)だと、3がかえってきます。
(あらし) 2025/07/14(月) 12:47:37

 でしたら、リストシートのC5セルの値が表示されるはずです。
 リストシートのC5セルは"秋田"じゃないかと思いますが。
(xyz) 2025/07/14(月) 13:15:30

 ひょとして手動計算にしていませんか?
 XLOOKUP式を入れたセルにカーソルを移して、
 F2を押してからEnterキーを押して(つまり式を再度入れるということです)やると、
 もう一度計算するのでは?

(xyz) 2025/07/14(月) 13:22:48


いえ、手計算にはしていないです。。

すみません。
私の伝え方も今一つですし、ブランクのところはNAと入れるとちゃんと秋田でかえってきますので、
ブランクセルはNAと入れるようにします。

皆さま、お忙しいところありがとうございました。🙇
(あらし) 2025/07/14(月) 13:52:20


何だかスッキリしませんね。
結局C5セルを返していることは明確になりました。
リストシートのC5セルには何が入っていたのですか?
秋田ならそのように表示されないはずはないですね。
何か説明されていないことがありそうな気がしています。
無念です(ってほどもないかな)

(xyz ) 2025/07/14(月) 14:09:40


A列がブランクのときに、B列で検索するように条件分岐を加えると解決できます。

以下のように IF 関数を使って、C3が空白かどうかで分岐させる方法が有効です:

=IF(C3="", XLOOKUP(D3,'リスト'!$B$2:$B$10,'リスト'!$C$2:$C$10), XLOOKUP(C3,'リスト'!$A$2:$A$10,'リスト'!$C$2:$C$10))

この式の意味
IF(C3="", ...):C3が空白なら
XLOOKUP(D3, B列, C列):D3をB列で検索して名前を取得
そうでなければ
XLOOKUP(C3, A列, C列):C3をA列で検索して名前を取得
これで解決できるケース
C3が空白 → D3で検索して名前を取得(秋田など)
C3に値がある → 通常通りA列で検索して名前を取得

(とお) 2025/07/14(月) 14:54:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.