在动态数组公式中调用溢出范围
Call spill range within dynamic array formula
我正在尝试使用引用溢出范围的动态数组公式查询存储在 Excel 中的销售列表,但这不起作用。
上下文如下:
- 我有一个包含销售额的 table
tabSales
,具有以下数据:日期、客户、金额、年份(使用 =YEAR([Date]
计算)
- 我想在另一个 sheet 上显示用户在单元格 B1(名为
SelCust
)中选择的给定客户的逐年销售量
这是我在报告中尝试过的 sheet:
- 我已使用 UNIQUE 和 FILTER 函数使报告在 D 列上显示所选客户实际购买商品的年份:
=UNIQUE(FILTER(tabSales[Year],tabSales[Customer]=SelCust))
(在单元格 D2 中输入公式)
- 然后我尝试使用 SUM 和 FILTER 函数以及 Excel 的溢出范围功能来计算每年销售给选定客户的总金额:
=SUM(FILTER(tabSales[Amount],(tabSales[Year]=D2#)*(tabSales[Customer]=SelCust)))
(公式输入E2)
不幸的是,不幸的是,最后一个公式不起作用:
- Excel returns #N/A 在 E2
- 单元格 E2 不会溢出 E3、E4、...
缺少溢出让我怀疑是否识别了 FILTER 函数中的溢出范围引用...
我怎样才能让这个公式起作用?
Sales table
Non-working formula
使用 SUMIFS():
=SUMIFS(tabSales[Amount],tabSales[Year],D2#,tabSales[Customer],SelCust)
这应该 return 一个正确的数组。
如果想在一个动态公式中同时处理两列,我们可以使用 LET 和 CHOOSE:
=let(
slcust,tabSales[Customer],
amt,tabSales[Amount],
yr,tabSales[Year],
unYr,UNIQUE(FILTER(yr,slcust=SelCust)),
sm,SUMIFS(amt,yr,unyr,slcust,SelCust),
Choose({1,2},unyr,sm))
我正在尝试使用引用溢出范围的动态数组公式查询存储在 Excel 中的销售列表,但这不起作用。
上下文如下:
- 我有一个包含销售额的 table
tabSales
,具有以下数据:日期、客户、金额、年份(使用=YEAR([Date]
计算) - 我想在另一个 sheet 上显示用户在单元格 B1(名为
SelCust
)中选择的给定客户的逐年销售量
这是我在报告中尝试过的 sheet:
- 我已使用 UNIQUE 和 FILTER 函数使报告在 D 列上显示所选客户实际购买商品的年份:
=UNIQUE(FILTER(tabSales[Year],tabSales[Customer]=SelCust))
(在单元格 D2 中输入公式) - 然后我尝试使用 SUM 和 FILTER 函数以及 Excel 的溢出范围功能来计算每年销售给选定客户的总金额:
=SUM(FILTER(tabSales[Amount],(tabSales[Year]=D2#)*(tabSales[Customer]=SelCust)))
(公式输入E2)
不幸的是,不幸的是,最后一个公式不起作用:
- Excel returns #N/A 在 E2
- 单元格 E2 不会溢出 E3、E4、...
缺少溢出让我怀疑是否识别了 FILTER 函数中的溢出范围引用...
我怎样才能让这个公式起作用?
Sales table Non-working formula
使用 SUMIFS():
=SUMIFS(tabSales[Amount],tabSales[Year],D2#,tabSales[Customer],SelCust)
这应该 return 一个正确的数组。
如果想在一个动态公式中同时处理两列,我们可以使用 LET 和 CHOOSE:
=let(
slcust,tabSales[Customer],
amt,tabSales[Amount],
yr,tabSales[Year],
unYr,UNIQUE(FILTER(yr,slcust=SelCust)),
sm,SUMIFS(amt,yr,unyr,slcust,SelCust),
Choose({1,2},unyr,sm))