SUMPRODUCT 花费的时间太长
SUMPRODUCT is taking way too long
我有这个数据:-
这就是我想要实现的:-
选择客户为“ABC”,相应金额将在1月至6月显示。
我可以通过使用 SUMPRODUCT 来实现这一点,但由于我的数据超过 10K 行,因此需要很长时间才能处理。有使用 SUMIFS 等更有效的方法吗?
谢谢
试试下面的公式-
=SUMIF($A:$A,$B,INDEX($B:$G,,MATCH($A15,$B:$G,0)))
如果它们是真实日期,请尝试下面的数组公式。 Excel365 不需要数组输入。
=SUMIF($A:$A,$B,INDEX($B:$G,,MATCH(MONTH($A15),MONTH($B:$G),0)))
按 CTRL+SHIFT+ENTER 计算公式,因为它是一个数组公式.
Edit: If your data is structed as like your provided sample then below formula will more efficient.
=SUMIFS(INDEX(B:G,,ROW($A1)),A:A,$J)
这是一个函数,您可以将其粘贴到示例中的 L2 并向下复制到 December。
=SUMIF(INDEX(Data,0,1),$L,INDEX(Data,0,MATCH(K2,Months,0)))
如您所见,它有 2 个命名范围,Data
和 Months
。
Data
包含所有数据行和列,在您发布的示例中为 A1:G9。我想你会想要使这个范围动态化,这意味着它应该在你添加或删除数据时自动调整大小。公式可以做到这一点,但效率不高。因此,您在名称声明中这样做。如果您需要帮助,请不要在这里询问。这是一个不同的主题:“动态命名范围”。
Months
的列数应与 'Data' 一样多,不限于 12。重要的是它应与 Data
在同一列开始,并且其第一个字段不应保留可能成为函数搜索条件的日期。
K 列也可以超过 12 列。在我的设置中,我使用了自定义数字格式 mmm
。因此 1/1/21 和 1/1/22 将显示相同,但 MATCHG 函数可以区分它们。
我将开始日期放入 B1,将 =EDATE(B1,1)
放入 C1,并将其复制到右侧。同理,K2有=B1
,K3有=EDATE(K2,1)
复制下来。这可确保列和行标题对齐。
我有这个数据:-
这就是我想要实现的:-
选择客户为“ABC”,相应金额将在1月至6月显示。
我可以通过使用 SUMPRODUCT 来实现这一点,但由于我的数据超过 10K 行,因此需要很长时间才能处理。有使用 SUMIFS 等更有效的方法吗?
谢谢
试试下面的公式-
=SUMIF($A:$A,$B,INDEX($B:$G,,MATCH($A15,$B:$G,0)))
如果它们是真实日期,请尝试下面的数组公式。 Excel365 不需要数组输入。
=SUMIF($A:$A,$B,INDEX($B:$G,,MATCH(MONTH($A15),MONTH($B:$G),0)))
按 CTRL+SHIFT+ENTER 计算公式,因为它是一个数组公式.
Edit: If your data is structed as like your provided sample then below formula will more efficient.
=SUMIFS(INDEX(B:G,,ROW($A1)),A:A,$J)
这是一个函数,您可以将其粘贴到示例中的 L2 并向下复制到 December。
=SUMIF(INDEX(Data,0,1),$L,INDEX(Data,0,MATCH(K2,Months,0)))
如您所见,它有 2 个命名范围,Data
和 Months
。
Data
包含所有数据行和列,在您发布的示例中为 A1:G9。我想你会想要使这个范围动态化,这意味着它应该在你添加或删除数据时自动调整大小。公式可以做到这一点,但效率不高。因此,您在名称声明中这样做。如果您需要帮助,请不要在这里询问。这是一个不同的主题:“动态命名范围”。Months
的列数应与 'Data' 一样多,不限于 12。重要的是它应与Data
在同一列开始,并且其第一个字段不应保留可能成为函数搜索条件的日期。
K 列也可以超过 12 列。在我的设置中,我使用了自定义数字格式 mmm
。因此 1/1/21 和 1/1/22 将显示相同,但 MATCHG 函数可以区分它们。
我将开始日期放入 B1,将 =EDATE(B1,1)
放入 C1,并将其复制到右侧。同理,K2有=B1
,K3有=EDATE(K2,1)
复制下来。这可确保列和行标题对齐。