『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.