『SUMPRODUCT VALUE 関数について』(ひさちゃん)
別表より集計データを作成したいと思っていますが
現在は下記(次月以降受注予定)資料より月別売上実績表を作っています
■C2セルの関数
=SUMPRODUCT((C14:C20=$A2)*VALUE(B14:B20))
[月別売上実績]
【 A 】 【 B 】 【 C 】
月 売上 受注済み
2 9月 250,000 250,000
3 10月 0 85,000
4 11月 0 150,000
5 12月 0 0
6 1月 0 12,000
7 2月 0 68,000
8 上期計 250,000 565,000
9 翌期予定 #N/A
[次月以降受注予定]
【 A 】 【 B 】 【 C 】
金額 検収予定 14 A社 50000 10月 15 B社 35000 10月 16 C社 150000 11月 17 A社 68000 2月 18 A社 39000 3月 19 C社 12000 1月 20 F社 250000 9月
この時、受注予定の3月は翌期になることから
C9セルに18行目の39000が表示されるようにしたいと思っています。
当初
=SUMPRODUCT(($C$14:$C$20<>$A2:A7)*VALUE($B$14:$B$20))
で答えが求められるかなと思っていましたがエラーとなりました。
当社の1期分は
3月〜2月となるので、2027/3/1以降を翌期として合計したいです。
因みに、月別表示は書式設定によって月だけの表示となっていますが
月も検収予定も西暦入力し統一しています。
検証してみた結果
=SUMPRODUCT(($C$14:$C$20<>$A2)*VALUE($B$14:$B$20))
は答えが求められたので<>については間違っていないと思うのですが…。
なんだか見にくい表となってしまいましたが、翌期の集計データが拾えるような関数を教えてください。
< 使用 Excel:unknown、使用 OS:unknown >
>2027/3/1以降を翌期として合計したいです。
なら
>=SUMPRODUCT(($C$14:$C$20<>$A2:A7)*VALUE($B$14:$B$20)) ↓ =SUMPRODUCT(($C$14:$C$20 > A7 )*VALUE($B$14:$B$20)) じゃないですか?
VALUE()で括る必要性を感じないですけども‥
(半平太) 2026/09/18(金) 12:51:40
=SUMPRODUCT(($C$14:$C$20 > A7 )*VALUE($B$14:$B$20))
ほんとだ…できました。
指定の月以外
ではなく
それ以降
という考え方をすればいいですね。
ありがとうございます。
> VALUE()で括る必要性を感じないですけども‥
については、適正ではないということですか?
(ひさちゃん) 2026/09/18(金) 12:56:40
書いてからいらないかもって思ったんですが。 <>の使い方というか配列の処理について疑問が書かれているので、 非常にわかりにくいexcelの挙動について補足します。
・value関数はいらないのか value関数は数字(文字列)を数値に変える関数ですが、 excelの仕様で *(掛け算)や -(引き算)をする場合、 10進数として扱える数字は自動的に数値として扱われます。 (+ だけはなぜか、計算が行われないと数字のままですが) そのため、今回の数式のように計算に巻き込むのであれば、 変換するためだけの value は不要です。
・<>の使い方(配列と配列の計算)最初に #N/A になったのは、
条件式 $C$14:$C$20<>$A2:A7 が「1列7行」と「1列6行」という、
違うサイズ同士を比較していたからです。
同じ行数の値を上から順番に比較していった結果
片方が空(データが足りない)の7行目で #N/A になります。
配列の結果が {TRUE; FALSE; FALSE; TRUE; TRUE; #N/A} のようになるため、
全体が #N/A に引っ張られていました。
・なぜ > A7 だとエラーにならないのか そう聞くと、「じゃあ > A7 に変えたら、今度は7行と1行の比較になるから#N/A になるのでは?」 と思うかもしれません。 ここがexcelの特殊な挙動で、比較する片方の「行数」や「列数」が「1」の場合、 相手のサイズに合わせて自動的に中身がコピーされて補完される という仕様があります。そのため、> A7 と書くと 内部的には「7行すべてが A7 の値が入った配列」 に拡張されて比較されるため エラーが出なくなります。
ただ、仮に最初の数式が同じ行数同士でエラーを回避できていたとしても、 期待通りの「どれとも一致しない」という全体の比較にはならず、 目的の値にはなりません。 間違った数字のままスルーしてしまう危険があったので エラーが出てよかったかもですね。 (ちくわ) 2026/09/18(金) 13:45:40
Microsoft365でしょうから、 =SUM(FILTER(B14:B20,C14:C20>A7)) と書けますね。 (xyz) 2026/09/18(金) 21:27:06
SUMIFで C2:=SUMIF($C$14:$C$20,A2,$B$14:$B$20) C9:=SUMIF(C14:C20,">"&A7,B14:B20) と書けますね。
14行目以下の金額は数値でしょう? なぜVALUEが必要だと思ったんですか? (しんぷる) 2026/09/19(土) 09:29:16
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.