[[20251204123752]] 『=sumifsについて』(ねね) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『=sumifsについて』(ねね)

いつもお世話になっております。
条件付きの集計についてsumifsを使用しています。

データは下記になります。
 A列   B列   C列
1 日付  商品名  売上金額
2 4/1  A商品   12000
3 4/16 B商品   8000
4 4/6 C商品   6000
5 4/4  A商品   12000
6 4/16 B商品   8000
7 5/4  A商品   12000
8 5/16 B商品   8000
9 5/6 C商品   6000
10 5/6 C商品   6000
11 5/4  A商品   12000
12 5/16 B商品   8000
13 5/6 C商品   6000


29 5/25 A商品  10000
集計は
       F列   G列
3     2025年4月 2025年5月
4 A商品    12000
5 B商品   
6 C商品

F4には=SUMIFS($C$2:$C$29,$A$2:$A$29,$F$3,$B$2:$B$29,$E$4)
と入れましたが、F3の月(2025/4/1)となっているため
4/1分のみの集計になります。

$F$3の所を4/1〜4/30までの期間にしたいです。
=SUMIFS($C$2:$C$29,$A$2:$A$29,">=2025/4/1",$A$2:$A$29,"<=2025/4/30",$B$2:$B$29,$E$4)
としました。

0となってしまうのは何が原因になるのでしょうか。
データの日付のセルの書式設定で「日付、*2012/3/14」
としています。

ほかに注意するべきことはありますでしょうか。

よろしくお願いします。

< 使用 Excel:unknown、使用 OS:unknown >


 A列のデータを年まで表示させて確認してはどうだろうか?
 少なくともこちらで試した際にはきちんと結果が出ていた。

 あと、F4セルの式を
 =SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(F$3,"yyyymm"))*($B$2:$B$29=$E4)*$C$2:$C$29)
 として右及び下へフィルコピーではどうだろうか?

 バージョンが分からないのでスピルは使用していない。
(ねむねむ) 2025/12/04(木) 13:17:41

 もし、SUMIFS関数で、ことであれば
 =SUMIFS($C$2:$C$29,$A$2:$A$29,">="&F$3,$A$2:$A$29,"<="&EOMONTH(F$3,0),$B$2:$B$29,$E4)
 だろうか?
(ねむねむ) 2025/12/04(木) 13:25:38

 >データの日付のセルの書式設定で「日付、*2012/3/14」
表示形式(書式)ではなく「型」が重要です
文字列として入力された値は表示形式を変えても
「型」は文字列のままです
検索条件が">=日付"等は日付範囲の型が文字列は無視されます
(単一の条件("日付")の時は日付とみなされる「文字列」でも対象になります)
(はてな) 2025/12/04(木) 13:30:33

 はてなさん、確かにそちらが原因のようですね。

 なお、データの日付が文字列でもSUMPRODUCT関数の式のほうは結果が出ます。
(ねむねむ) 2025/12/04(木) 13:33:49

ねむねむさん、はてなさん
ご確認ありがとうございます。
使用した事がないですが、SUMPRODUCT関数で
当てはめてみました。
間違えなく結果が出てきました。
一つ関数を使用できるようになりました。
ありがとうございます。
(ねね) 2025/12/04(木) 14:34:09

ねむねむさん、はてなさん
追加で教えてください。

条件を増やしたいです。
商品にはそれぞれA11,A24,C2,C8,E3,E6の型番があります。

 =SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(F$3,"yyyymm"))*($B$2:$B$29=$E4)*$C$2:$C$29)
の後に
=SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(F$3,"yyyymm"))*($B$2:$B$29=$E4)*$C$2:$C$29*($D$2:$D$29="E??")*$C$2:$C$29)
を追加したのですが、反映されませんでした。

条件追加をご教授いただきたくよろしくお願いします。
(ねね) 2025/12/04(木) 16:00:57


 SUMPRODUCT関数の場合には基本、単純な比較しかできずワイルドカードは使えない。

 なので
 ($D$2:$D$29="E3")*($D$2:$D$29="E6")
 と抜き出したい型番を一つずつ指定するか、あるいはEのもの全てであれば
 (LEFT($D$2:$D$29,1)="E")
 のようにする。
(ねむねむ) 2025/12/04(木) 16:17:15

ねむねむさん、

(LEFT($D$2:$D$29,1)="E")はどこに追加すればよろしいでしょうか。

=SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(I$3,"yyyymm"))*($B$2:$B$29=$E4)*(LEFT($D$2:$D$29,1)="E")*$C$2:$C$29)

=SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(F$3,"yyyymm"))*($B$2:$B$29=$E4)*$C$2:$C$29)*(LEFT($D$2:$D$29,1)="E")

0になってしまいます。

(ねね) 2025/12/04(木) 16:45:50


 =SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(I$3,"yyyymm"))*($B$2:$B$29=$E4)*(LEFT($D$2:$D$29,1)="E")*$C$2:$C$29)

 こちらのほうになるが
 TEXT(I$3,"yyyymm")
 は
 TEXT(F$3,"yyyymm")
 では?
(ねむねむ) 2025/12/04(木) 16:59:08

ねむねむさん、

 TEXT(F$3,"yyyymm")です。
すいません。

教えていた場所に挿入して解決できました。

 =SUMPRODUCT((TEXT($A$2:$A$29,"yyyymm")=TEXT(I$3,"yyyymm"))*($B$2:$B$29=$E4)*(LEFT($D$2:$D$29,1)="E")*$C$2:$C$29)

いろいろとありがとうございました。
(ねね) 2025/12/04(木) 17:29:56


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.