注意:我将这个问题作为Excel和Google Docs提出,因为对于像这样的简单问题,它们有很多重叠。
我有两列数据。购买日期和购买金额。
A B
11/23/2015 $59
12/5/2015 $23.32
1/21/2016 $12.09
1/22/2016 $78.21
1/22/2016 $5.88
2/14/2016 $0.13
... ...
(thousands of rows below this)
我希望记录星期一,星期二,星期三等所花的金额。
如果我使用SUMIF
,我会遇到这个问题:
=SUMIF(A:A, WEEKDAY(A:A), B:B)
^ WEEKDAY only takes in a single date value.
我不想要一个我必须向下拖动的功能。
我将如何做到这一点?
答案 0 :(得分:0)
试试这个query函数:
=QUERY({A:B},"select dayOfWeek(Col1), sum(Col2) where Col1 is not null group by dayOfWeek(Col1)")
在此公式中,我在公式中使用了数组{A:B}
和符号Col1, Col2...
,因为现在添加新列时,公式不会失败。
类似的公式,使用sumif
:
={arrayformula(unique(weekday(A:A))),arrayformula(sumif(weekday(A:A),unique(weekday(A:A)),B:B))}
答案 1 :(得分:0)
在Excel中,您可以使用此Array公式执行此操作。需要使用Ctrl-Shift-Enter输入数组公式。
{=SUM(IF(WEEKDAY($A$2:$A$1000,1)=E2,$B$2:$B$1000,0))}
这假设你的星期几是E2。工作日函数中的第二个参数定义您如何对周的天数进行编号。这里我使用了1表示1 =星期日,7 =星期六