[NO.10回答に対する補足]に対するコメント
概ね理解しておられるので安心しました。そして、コメントし易いように箇条書きにされたことに敬意を表します。
》 ●COLUMN(A:I)は、AからIのうち一番左のセルの番号を返す。
》 "1"いわば左が小さく右が大きいという意味・・・?
1.=COLUMN(A1)、COLUMN(B1)、…、COLUMN(I1) はそれぞれ 1、2、…、9 を返して来ます。
従って配列数式内の COLUMN(A1:I1) は、配列{1,2,…,9} を返して来ます。COLUMN(A:I) は COLUMN(An:In) と同じことです。
》 ●ISNUMBER(B1:J1)は、B1からJ1が数値であることを調べる。
2.そのとおり。
》 ●LARGE(ISNUMBER(B1:J1)*COLUMN(A:I),2)は、B1からJ1のうち大きい方
》 (COLUMN(A:I)で一番左が小さい)から数えてから数えて2番目の数字を返す。
3.仰るとおりですが、繰り返しますと次のようになります。
4.セル B1、C1、D1、G1 にそれぞれ数値 6、4、2、5 が入力されていたと仮定します。
5.ISNUMBER(B1:J1) は配列 {TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE} を返して来ます。
6.従って ISNUMBER(B1:J1)*COLUMN(A:I) は、配列{TRUE*1,TRUE*2,TRUE*3,FALSE*4,FALSE*5,TRUE*6,FALSE*7,FALSE*8,FALSE*9} のことであり、この結果は配列 {1,2,3,0,0,6,0,0,0} になります。
7.LARGE({1,2,3,0,0,6,0,0,0},1) は配列の最大値 6 を、LARGE({1,2,3,0,0,6,0,0,0},2) は2番目に大きい数値 3 を返して来ます。
》 ●INDEX(B1:J1,0,LARGE(ISNUMBER(B1:J1)*COLUMN(A:I),2))は、B1からJ1の
》 うち、この行の右から数えて2番目に大きい数字を返す。
8.結果的には同じことですが、左から 3 番目にあるセル D1 の内容を返すということです。
》 ISNUMBER(B1:J1)とCOLUMN(A:I)を*で表現している意味が分かりません。
9.既に6で説明しました。
》 COLUMN(A:I)だけで、ずれている理由が分かりません。
10.既に1で述べたように、配列 {1,2,3,4,5,6,7,8,9} の代用に用いただけで、何かからずらしたということではありません。例えば、配列 {27,28,29} が欲しければ、COLUMN(AA:AC) とする次第。しかし、場合に依っては、此れに限らず、ROW(A27:A29) とか ROW(27:29) でもOKだと思います。
お礼
すんまへん! 長期間回答いただき有難うございました。 もっと勉強しないといけないことがいっぱいあるようです。 ご迷惑をおかけしました。 20ポイントでは少ないかも・・・。 ちなみに、このような疑問を解決する方法(サイトやテキスト)ってあるのでしょうか。