『参照の引き渡し不具合の解消であること』が目的ですよね?
【配列数式において、OFFSET関数の引数にROW関数やCOLUMN関数は使えない。】
使えないから手法を変えないといけません。
揮発性関数である、重たいOFFSETをそんなに使いたいのであれば
COLUMNS関数を使った代案も提示していますから使えば良いでしょう。
>試したりはなさらないのでしょうか?
と再度問いかけしたのに結果報告もないとは。
『PF9で局部的に結果を検証した場合意図した答えが得られる』
ここの検証が足りません。
>但し
>「PF9での検証時は検証順序を違えてない」
>と しての話で御願いします。
そんな仮定は成り立ちません。
新規シート
A1セル:a
B1セル:a
B2セル:b
B3セル:c
C1セル:=OFFSET($A$1,COLUMN()-3,0)=$B$1:$B$3
C2セル:=OFFSET($A$1,COLUMNS($A1:C1)-3,0)=$B$1:$B$3
(C2セルに関しては検証の結果の代替式。比較のために提示)
C1式[F9]の結果
{#VALUE!;#VALUE!;#VALUE!}
C2式[F9]の結果
{TRUE;FALSE;FALSE}
望む結果は{TRUE;FALSE;FALSE}のはず。
C1式 OFFSET($A$1,COLUMN()-3,0) [F9]の結果
{"a"}
{}つきの配列が返っている。
C1式 COLUMN()-3 [F9]の結果
{0}
{}つきの配列が返っている。
C1式 =OFFSET($A$1,COLUMN()-3,0)=$B$1:$B$3 の COLUMN()-3 を直値に変えてみる。
=OFFSET($A$1,{0},0)=$B$1:$B$3
結果 {#VALUE!;#VALUE!;#VALUE!}
=OFFSET($A$1,0,0)=$B$1:$B$3
結果 {TRUE;FALSE;FALSE}
どうやらOFFSET関数の引数に配列を渡している事が不具合の原因らしい。
A列で =COLUMN() の式を[F9]確認すると
{1}
{}つきの配列が返っている。
【配列数式において、OFFSET関数の引数にROW関数やCOLUMN関数は使えない。】
バグなのか仕様なのかはわからないが、
OFFSET($A$1,COLUMN()-3,0)
と同じ結果を返す別の関数を使えば良い。
...が検証の結論。
お礼
以下はいうべき事ではないと思っていたので割愛していました、 申し訳在りません。 実は私は数年前にはこちらでトップクラスの回答者をしておりました、 恐らく他者の方に解答をされるような、 貴方ほどのレベルの方からの質問に対し 更に指南・解答する役割をしていたと思います。 で、 その際には全く問題なく動作していたと記憶している書き方が 今回ブランクを経て、動かなかった為、動揺し、 非公開内部仕様変更の情報を欲し スレを起こしたという経緯があります。 INDEXは敢えてわざと使わなかったとお見知りおき下さい。 使えることは火を見るより明らかと知っていたので 検証しませんでした。 申し訳在りません。 ただこういうことは もう御分かりの通り表すと角を立てるので 書くことを避けたかったのですが、 余りにもこちらを無知と決めつけているかのように伺えましたので、 御心を砕いて頂いた恩に報いたく、 御身のこれからの助けとなればと敢えて申し上げることを 踏み切りました。 人は爪を隠します、 見えている様が全ての能力とは限りませんし、 それを見抜けないことこそ最も愚かしい愚者の表れと存じます。 本当に「お気を害さねば良い」と気が気でならないのですが、… 真摯に他者の苦言を受けて糧と出来る方かが心配でならないのですが、… 貴方がそうでない愚者だった場合は平に御容赦下さい。 あと、 2点感謝を述べさせて頂ければと思います、 1つ目は マイクロソフトが理不尽な非公開仕様変更を頻繁に重ねる中で、 現時点の短い間では、OFFSET内にcolumn を含ませることに問題があると知ることが出来ました、 INDEXを掛けることで対処できるかと思いますが、 全く視点の外に放置していましたので物凄く「目から鱗」感を感じました。 ご指摘感謝致します。 もう1つは 揮発性関数という観念を知らなかったので これについても学ぶことが出来、感激しました。 OFFSETもINDEXも揮発性関数なのですね。 実行スピードを気にしてプログラミングするのは 以前よりしてはいましたが、 揮発性関数と言う新たな開拓すべき余地を見いだせた気がして、 本当に少しではありますが心躍る思いです。 感謝致します。