- ベストアンサー
SUMIF関数で分からないところがあります。
エクセルのSUMIF関数の例題で分からないところがあります。 =SUMIF(A:A,"<=&D2,B:B) A列に日付(2017/12/05,,2017/11/30など) B列に金額(500,100,300など) D列に末日(2017/11/30,2017/12/31など) が入力されています。 A列に入力された日数からD列の末尾までの合計を求めるプログラムだとお思うのですが、 なぜ、Dの前に&が付くのでしょうか? 教えてくださいよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>エクセルのSUMIF関数の例題で分からないところがあります。 提示の数式「 =SUMIF(A:A,"<=&D2,B:B) 」に誤りがあります。 =SUMIF(A:A,"<=&D2,B:B) ↓ <=を""で括らなければならない。 =SUMIF(A:A,"<="&D2,B:B) >A列に入力された日数からD列の末尾までの合計を求めるプログラムだとお思うのですが、 違います。 A列の日付がD2セルの日付以前の行にあるB列の値を合計するための計算式です。(プログラムと言うより関数を使った数式です) >なぜ、Dの前に&が付くのでしょうか? SUMIF関数の約束事で比較の論理は文字列で指定することになっています。 D2セルの値が2017/11/30であるときは">=2017/11/30"のように指定することになっています。その代わりに">="&D2と記述します。
その他の回答 (2)
- Chiquilin
- ベストアンサー率30% (94/306)
SUMIF関数のヘルプは読みましたか? 第二引数の説明に注意書きがあります。 > 重要: 文字列条件や、論理記号または数学記号を含む条件は、 > 二重引用符 (") で囲む必要があります。条件が数値の場合、 > 二重引用符は不要です。 検索条件は文字列で指定する必要があり(数値以外) 文字列 条件は二重引用符で囲む必要があると書いてあります。 ここで記述している「D2」は文字列ではなくセル番地のこと でしょう。「<=D2」を検索したいのではなく「<=2017/11/30」 を検索したいのでしょうから 「"<="」とD2内の「値」とを文 字列として繋ぐ必要があります。
お礼
回答ありがとうございます。 参考にさせていただきます。
- Mathmi
- ベストアンサー率46% (54/115)
"D2"という文字列ではなく、D2セルの中身を使用するためです。 もし&を付けず、["<=D2"]とした場合、エクセルは「D2よりも小さい」という条件で検索し、A列に条件に合う項目(例えばAとかD1とか)がないため、0を返します。 &と"を付けて["<="&D2]とする事で、「<=とD2セルの中身を組み合わせた条件式」になります。例えばD2セルに[2017/11/30]と入力されていれば、"<=2017/11/30"という条件式が生成されます。 "<=":<=という文字列 &:前後を結合した文字列を作成する演算子 D2:D2セルの中身 以上三つの項目の組合せですね。
お礼
回答ありがとうございました。 参考にさせていただきます。
お礼
回答ありがとうございます。 参考にさせていただきます。