Excel:其他字段中使用的动态范围日期:Sumproduct

Posted

技术标签:

【中文标题】Excel:其他字段中使用的动态范围日期:Sumproduct【英文标题】:Excel: Dynamic Range Date used in other fields: Sumproduct 【发布时间】:2021-12-24 17:59:51 【问题描述】:

我正在使用 sumproduct 公式来获得前四个月、第二个四个月、第三个四个月的净销售额,直到今天前一个月。这是我使用的公式:

=IFERROR(SUMPRODUCT($B3:$Y3*(COLUMN($B3:$Y3)>=AGGREGATE(15,6,COLUMN($B3:$Y3)/($B3:$Y3<>0),1)+4*(COLUMNS(B3)-1))*(COLUMN($B3:$Y3)<AGGREGATE(15,6,COLUMN($B3:$Y3)/($B3:$Y3<>0),1)+4*(COLUMNS(B3)))*($B$1:$Y$1<EOMONTH(TODAY(),-1)+1)),0)

但是,在我的示例中,我需要捕获与净销售额相同的范围,例如 COGS 等其他指标。我不能将上面的公式用于 COGS 等其他指标,因为有时它们在与净销售额相同的范围内为零。但我也需要在这里捕获零。

Example 1

Example 2

净销售额

Jan Feb Mar Apr May June July Aug Sept Oct Nov Dec
0 0 2 3 4 5 2 3 2 3 2 4
---> 1st period= 14 2nd period= 10 

销货成本(与净销售额的日期范围相同)

Jan Feb Mar Apr May June July Aug Sept Oct Nov Dec
0 0 0 0 0 2 1 4 2 3 2 4

---> 第一个周期= 2 第二个周期= 11

【问题讨论】:

【参考方案1】:

您可以从第一个公式中保留整个范围检查逻辑,只更改值范围,即我的示例中的第一个公式:

=IFERROR(SUMPRODUCT($A3:$L3*(COLUMN($A3:$L3)>=AGGREGATE(15,6,COLUMN($A3:$L3)/($A3:$L3<>0),1)+4*(COLUMN(A3)-1))*(COLUMN($A3:$L3)<AGGREGATE(15,6,COLUMN($A3:$L3)/($A3:$L3<>0),1)+4*(COLUMN(A3)))*($A$2:$L$2<EOMONTH(TODAY(),-1)+1)),0)

COGS 的第二个公式:

=IFERROR(SUMPRODUCT($O3:$Z3*(COLUMN($A3:$L3)>=AGGREGATE(15,6,COLUMN($A3:$L3)/($A3:$L3<>0),1)+4*(COLUMN(A3)-1))*(COLUMN($A3:$L3)<AGGREGATE(15,6,COLUMN($A3:$L3)/($A3:$L3<>0),1)+4*(COLUMN(A3)))*($A$2:$L$2<EOMONTH(TODAY(),-1)+1)),0)

【讨论】:

非常感谢。这是我一直在寻找的解决方案。

以上是关于Excel:其他字段中使用的动态范围日期:Sumproduct的主要内容,如果未能解决你的问题,请参考以下文章

SQL,表中字段的某个范围内插入相同数据

将 Excel 数据“日期范围”传递给 SQL 查询

EXCEL问题:如何实现根据输入数值动态显示想要显示的数据范围的大小?

Excel中具有偏移(跳过线)的动态范围

从 Access 导出到 Excel 时出现日期超出范围错误

如何使用 jQuery Datepicker 动态应用 setDate 和(minDate 和 maxDate)日期范围?