如何在外部工作表上使用带有月份和年份的 SUMIF 以及文本条件

问题描述 投票:0回答:6

如何使用带有文本条件的月份和年份的 SUMIF,

经验!

我想求和

A                  B                C
Date              Item Code        QTY

01-12-16          86000             50
15-12-16          86021             20
01-02-17          86022             100
01-03-17          86023             50       

现在我只想要 12 月 16 日的 86000 的总和结果在外部表上。

excel excel-formula sum sumifs
6个回答
2
投票

假设您的数据如下图所示,然后在

Cell G2

中输入以下公式
=SUMPRODUCT((MONTH($A$2:$A$5)=12)*(YEAR($A$2:$A$5)=2016)*($B$2:$B$5=86000)*(C2:C5))

=SUMPRODUCT((MONTH($A$2:$A$5)=F2)*(YEAR($A$2:$A$5)=F3)*($B$2:$B$5=F4)*(C2:C5))

在这里,

SUMIFS
可能没用,你可以使用
SUM
作为

=SUM(IF(MONTH($A$2:$A$5)=F2,IF(YEAR($A$2:$A$5)=F3,IF($B$2:$B$5=F4,$C$2:$C$5))))

这是一个数组公式,因此请按 Ctrl+Shift+Enter 提交。

编辑:

如果您必须使用月份名称而不是数字,即如果您使用

Dec
而不是
12
,则使用以下公式

=SUMPRODUCT((MONTH($A$2:$A$5)=MONTH(F2&"1"))*(YEAR($A$2:$A$5)=F3)*($B$2:$B$5=F4)*(C2:C5))

1
投票

终于找到解决方案了。

  A                 B                C  

1....... 日期............ 商品代码.......数量
2
3................. 01-12-16.................. 86000......................... 50
4......... 16-12-15......... 86021......... 20
5......... 01-02-17......... 86022......... 100
6................. 01-03-17.................. 86023......................... 50

如果我想要 2016 年 12 月的 86000 总和,我将这个公式放入单元格中,我的问题就解决了

=SUMPRODUCT((月($A$3:$A$6)=12)(年($A$3:$A$6)=2016)($C$3:$C$6)*($B$3:$ B$6=86000))


0
投票

使用表格范围,可以帮助您在整个工作簿的每张工作表中进行寻址。

假设日期字段数据类型为文本:

=SUMIFS(Table1[QTY], Table1[Date], "01-12-16", Table1[Item Code], "86000")

如果日期以 12-16 结尾:

=SUMIFS(Table1[QTY], RIGHT(Table1[Date], 5) , "12-16", Table1[Item Code], "86000")

0
投票

您可以使用

SUMPRODUCT

从上面的屏幕截图中,我添加了两行额外的数据来向您展示这是如何工作的。我所做的是将所有日期转换为该月的第一个日期。这是假设您在

cell E2
上得到结果的公式。

=SUMPRODUCT($C$2:$C$7,--(DATE(YEAR($A$2:$A$7),MONTH($A$2:$A$7),1)=DATE(2016,12,1)),--($B$2:$B$7=86000))

您还可以将条件移至另一个表中,以便将来更轻松地更改它们。


0
投票

您也可以使用 SUMIFS

=SUMIFS($C$2:$C$5,$A$2:$A$5,">="&F2,$A$2:$A$5,"<="&EOMONTH(F2,0),$B$2:$B$5,G2)

日期可以作为文本或实际日期输入。


0
投票

我被困在试图解决问题......

=SUMIFS(TableColumnOfValues, Text(TableColumnOfDates, "mmm"), "= & $CellWith3DigitMonthInIt)

=SUMIFS(TableColumnOfValues, 月(TableColumnOfDates), "= & $CellWithMonthNumberInIt)

SumProduct 完美地解决了这个问题。不过我会选择...

=SUMPRODUCT($C$2:$C$5*(TEXT($A$2:$A$5,"yyyy-mm")=TEXT($F$2, "yyyy-mm"))*($B$2:$B$5 = $F$4))

在G2。或者作为 G3 中的替代方案...

=SUMPRODUCT($C$2:$C$5*(TEXT($A$2:$A$5,"yyyy-mm")=TEXT($F$3, "yyyy-mm"))*($B$2:$B$5 = $F$4))

使用 TEXT 来格式化源数据和要匹配的 DATE 的 DATE 意味着要查找的 DATE 的格式并不重要

伊恩

附注我还将我的数据放在 ListObject 表中或给出我的列名称。讲道结束。

© www.soinside.com 2019 - 2024. All rights reserved.