[[20240804171805]] 『XLOOKUPの戻り値について』(匿名) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『XLOOKUPの戻り値について』(匿名)

[[20240801080104]]のスレで匿名として回答付けたものです。
私の
>XLOOKUPの戻り値は、「セル参照」でも「直接範囲名」でもなく配列です。
という回答に対して、

>>XLOOKUPはセル参照を返します。
>A1セルに1と入力して、別のセルに =CELL("address",XLOOKUP(1,A1,A1)) と>いれると結果は $A$1
との回答をいただきました。

これについての質問なのですが、
例えば以下のような表を作成します。

A1セルに数値の「1」、A2セルに数値の「2」、A3セルに数値の「3」を入力
B1セルに文字の「A」、B2セルに文字の「B」、B3セルに文字の「C」を入力
C1セルに文字の「a」、C2セルに文字の「b」、C3セルに文字の「c」を入力
そして、E1セルに「=CELL("address",XLOOKUP(1,A1:A3,B1:C3))」と入力すると、
E1セルには、「$B$1」と表示されます。

しかし、F1セルに「=XLOOKUP(1,A1:A3,B1:C3)」と入力すると、
F1セルに、「A」、G1セルに「a」と表示されます。

XLOOKUPの戻り値が「セル参照」であるならば、
「$B$1:$C$1」と表示されるのではないでしょうか。

単にCELL関数の戻り値として、「$B$1」と表示されるのではないのかと疑問に思い、
Microsoftのサポートページを調べたのですが、
「表や範囲から行ごとに情報を検索します。 」としか書いてありませんでした。

従って、XLOOKUPの戻り値は、B1セルを配列の0番地とした以下のような
配列が戻ってきているのではないでしょうか。

配列名を仮に"ABC"とします。
 配列名:ABC(B1セルを先頭とした配列)
 ABC[0]→B1セルの値
 ABC[1]→C1セルの値

どなたかご存じの方いらっしゃいましたら、
ご享受頂けると幸いです。

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

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


 XLOOKUP関数の戻り値は「セル参照」です。
 =XLOOKUP(1,A1:A3,B1:C3)の戻り値はセル参照である「B1:C1」です。

 一方、CELL関数の第1引数に「"address"」を指定した場合の戻り値は「先頭セルのアドレス」を返します。
 なので、=CELL("address",B1:C1)の戻り値は、先頭セルのアドレスである「$B$1」となります。
(まる2021) 2024/08/04(日) 17:47:34

ご回答ありがとうございます。

まる2021様、QED様のご回答の通りである事が理解できました。

試してみたことは、Row関数、Rows関数、Column関数、Columns関数、Cell関数
です。

これらを使って「あれこれ」していると「セル参照」である事が証明できますね。

やはり、常日頃から「EXCELは2次元配列を可視化した【ような】もの」という
認識で使用しすぎていたため、私の方で誤解していたようでした。

ご回答、誠にありがとうございました。
(匿名) 2024/08/04(日) 18:18:32


 >「セル参照」である事が証明できますね。
ROWS関数とCOLUMNS関数は配列も対象なので
(ROW関数とCOLUMN関数はセル参照のみ)
セル参照であることの証明にはなりません
(はてな) 2024/08/04(日) 18:27:36

ご回答ありがとうございます。

>ROWS関数とCOLUMNS関数は配列も対象なので
仰る通りでした。

度々の誤りをご指摘下さり、
本当にありがとうございました。
(匿名) 2024/08/04(日) 19:50:59


コメント返信:

[ 一覧(最新更新順) ]


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