賢い人々、
Excel では、配列数式を SUM でラップしても、すべての場合に配列の内容の合計が得られるわけではないようです。(つまり、私にはそう見えます。明らかに、私は混乱する可能性があります。)
これは、Excel で内部結合に相当するものを記述しようとしたときに発生しました。Excel for Mac に関する理由から、Visual Basic や MS Query を使用せずにこれを行っています。配列数式と INDEX/MATCH のみです。理解に苦しんでいるこの奇妙な振る舞いは別として、私は成功したと思います。
現在、私はクラッジを使用していますが、そうしなくてもいいと思います。ヘルプやアドバイスをいただければ幸いです。
以下は問題を再現します。
表1
key | fkey
----+------
a | x
a | y
b | x
b | y
表 2
key | value
----+------
x | 1
y | 10
上記のレイアウトは、これら 2 つの小さなテーブルがスプレッドシートにどのように表示されるかを表しているはずです。巧妙なことは何も行われていません。4 つの明白な範囲は、 、 、 、および と名付けられtable1.key
てtable1.fkey
いtable2.key
ますtable2.value
。
では、内部結合です。表 1 の特定のキーに対応する表 2 の値を、「table1.fkey=table2.key」で結合して欲しいです。式の入力:
{=("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE))}
2 つの垂直セルにすると、必要な結果が得られます。すなわち:
1 10
(クール、または何?) ここまでは順調です。しかし、実際には上記の 2 つの数値の合計が必要です。したがって、上記の式を単純に SUM でラップし、結果を 1つのセルに入力しました。
{=SUM(("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE)))}
結果?
2
一体何が起こっているのか、誰にも分かりませんか?
ジェームズ