列 A の行に月次データがあります。また、列 B から列 G までのヘッダーにも月次データがあります。列 H には、すべての行に現在の月が入力されています。たとえば、行の月が1月で現在の月が3月の場合、1月と3月が交差する値を見つけて、すべての行に対してこれを実行する値を表示したいと考えています。列 J で次の数式を使用してみましたが、機能する場合は最初の値しか得られません。列 I の結果が望ましいです。わかりやすくするために写真を添付しました。
=INDEX(B1:H2,MATCH(A2,$A$1:A2,0),MATCH(A2,$B$1:H2,0))
------------------------
あなたならできるよSUMPRODUCT を使用します。
表示されている値とは異なる値を持つ偽のデータセットを作成したので、現在の月を変更しても機能するかどうかを適切にテストできました。
CurrentMonth 列に異なる月が含まれている場合でも機能します
私の計算式は次のとおりです。
=SUMPRODUCT(--($B:$G=H2);B2:G2)
これがどのように機能するかです:
--($B$1:$G$1=H2) は、範囲 B1:G1 がその行の現在の月と等しい場合、1 と 0 の配列を返します。したがって、CurrentMonth=Mar の場合、{0;0;1;0;0;0} が返されます。
SUMPRODUCT では、前の配列に現在の行の範囲 B:G を乗算します。したがって、行 2 の場合、B2:G2 になります。たとえば、{0;0;1;0;0;0} * {1;2;3;4;5;6} = {0;0;3;0;0;0} となります。この配列を合計すると 3 が得られます
------------------------
1 つの MATCH を指定して INDEX を使用するだけです。
=INDEX(B2:G2,,MATCH(H2,$B:$G,0))
1
1
本当にありがとうございます。どちらの回答も素晴らしく、希望どおりに機能しました。
– デビッド D
2020 年 9 月 5 日 15:01