使用 countif 以编程方式创建列表
Creating a list programatilly using countif
我有一件 Sheet 杂货,购买时间和价格。
我正在尝试创建一个新列表,programatilly,它在第一个列表中搜索给定时间段内每次购买某件商品以及在该商品上花费的总金额。
原始数据:
A B C
Item Date Price
Cheese 20/08 16,60
Bacon 20/08 8,35
Chicken 20/08 10,90
Butter 20/08 7,99
Tea 20/08 3,75
Bread 20/08 4,89
Bread 21/08 4,50
Milk 21/08 8
第二个列表:
E F
Item Total
(formula 1) (formula 2)
公式 1 : =INDEX(A2:A;MATCH(0;COUNTIFS($E:E1;A2:A);0))
公式2:=sumifs(C:C;A:A;E2;B:B;CONCAT(">=";INDIRECT("I1"));B:B;CONCAT("<=";INDIRECT("I2")))
其中,
I1:开始日期
I2:结束日期
如果我将日期设置为从数据开始 (20/08) 到结束 (21/08),这会很好用
E F
Item Total
Cheese ,60
Bacon ,35
Chicken ,90
Butter ,99
Tea ,75
Bread ,39
Milk ,00
但如果我将开始日期和结束日期设置为 21/08。它在 F 列中显示了一堆零。这就是我要解决的问题。
E F
Item Total
Cheese [=13=],00
Bacon [=13=],00
Chicken [=13=],00
Butter [=13=],00
Tea [=13=],00
Bread ,50
Milk ,00
我想要的是这样显示:
E F
Item Total
Bread ,50
Milk ,00
我尝试将公式 1 修改为
=INDEX(A2:A;MATCH(0;COUNTIFS($E:E1;A2:A;B:B;CONCAT(">=";INDIRECT("I1"));B:B;CONCAT("<=";INDIRECT("I2")));0))
但我收到#VALUE 错误(“COUNTIFS 的数组参数大小不同”)
要获得具有日期限制的唯一项目列表,请使用公式:
=INDEX($A:$A;MATCH(1;(COUNTIF($E:E1;$A:$A)=0)*($B:$B>=$I)*($B:$B<=$I);0))
要获取金额,请使用公式:
=SUMPRODUCT((E2=$A:$A)*($B:$B>=$I)*($B:$B<=$I)*$C:$C)
如果要消除 #N/A
错误,请对第一个公式使用 IFERROR
,对第二个公式使用 IF(E2<>""; ..., "")
我有一件 Sheet 杂货,购买时间和价格。
我正在尝试创建一个新列表,programatilly,它在第一个列表中搜索给定时间段内每次购买某件商品以及在该商品上花费的总金额。
原始数据:
A B C
Item Date Price
Cheese 20/08 16,60
Bacon 20/08 8,35
Chicken 20/08 10,90
Butter 20/08 7,99
Tea 20/08 3,75
Bread 20/08 4,89
Bread 21/08 4,50
Milk 21/08 8
第二个列表:
E F
Item Total
(formula 1) (formula 2)
公式 1 : =INDEX(A2:A;MATCH(0;COUNTIFS($E:E1;A2:A);0))
公式2:=sumifs(C:C;A:A;E2;B:B;CONCAT(">=";INDIRECT("I1"));B:B;CONCAT("<=";INDIRECT("I2")))
其中,
I1:开始日期
I2:结束日期
如果我将日期设置为从数据开始 (20/08) 到结束 (21/08),这会很好用
E F
Item Total
Cheese ,60
Bacon ,35
Chicken ,90
Butter ,99
Tea ,75
Bread ,39
Milk ,00
但如果我将开始日期和结束日期设置为 21/08。它在 F 列中显示了一堆零。这就是我要解决的问题。
E F
Item Total
Cheese [=13=],00
Bacon [=13=],00
Chicken [=13=],00
Butter [=13=],00
Tea [=13=],00
Bread ,50
Milk ,00
我想要的是这样显示:
E F
Item Total
Bread ,50
Milk ,00
我尝试将公式 1 修改为
=INDEX(A2:A;MATCH(0;COUNTIFS($E:E1;A2:A;B:B;CONCAT(">=";INDIRECT("I1"));B:B;CONCAT("<=";INDIRECT("I2")));0))
但我收到#VALUE 错误(“COUNTIFS 的数组参数大小不同”)
要获得具有日期限制的唯一项目列表,请使用公式:
=INDEX($A:$A;MATCH(1;(COUNTIF($E:E1;$A:$A)=0)*($B:$B>=$I)*($B:$B<=$I);0))
要获取金额,请使用公式:
=SUMPRODUCT((E2=$A:$A)*($B:$B>=$I)*($B:$B<=$I)*$C:$C)
如果要消除 #N/A
错误,请对第一个公式使用 IFERROR
,对第二个公式使用 IF(E2<>""; ..., "")