求助:按唯一客户及月份计算营收总和的正确Excel公式
按唯一客户及月份计算营收总和的正确公式
你当前使用的公式=SUM(UNIQUE(FILTER(REVENUE,(REPORT_MONTH=C2))))存在逻辑错误:它仅对指定月份下营收列的唯一值求和,而非按唯一客户维度汇总营收——如果不同客户在同一月份有相同营收,该公式会错误地只计算一次。
示例数据
| Report_Month | Customer code | Revenue |
|---|---|---|
| 31/07/2023 | 123 | 100 |
| 31/07/2023 | 123 | 100 |
| 31/08/2023 | 1234 | 1000 |
| 31/08/2023 | 12345 | 100 |
预期输出
| Month | Unique Revenue |
|---|---|
| Jul-23 | 100 |
| Aug-23 | 1100 |
正确公式
单月份计算(针对单元格C2指定的月份)
=SUM(SUMIFS(C:C, B:B, UNIQUE(FILTER(B:B, A:A=C2)), A:A=C2))
公式解析:
UNIQUE(FILTER(B:B, A:A=C2)):筛选出指定月份下的所有唯一客户代码SUMIFS(C:C, B:B, [唯一客户], A:A=C2):对每个唯一客户,计算其在指定月份的营收总和SUM(...):将所有客户的月度营收总和相加,得到最终结果
批量生成所有月份的汇总(动态数组公式)
如果需要一次性生成所有月份的汇总结果,可使用以下公式(支持Excel 365及以上版本):
=LET( 月份列表, UNIQUE(TEXT(A:A, "mmm-yy")), 客户分组, BYROW(月份列表, LAMBDA(月, UNIQUE(FILTER(B:B, TEXT(A:A, "mmm-yy")=月)))), 客户营收, BYROW(客户分组, LAMBDA(客, SUMIFS(C:C, B:B=客, TEXT(A:A, "mmm-yy")=INDEX(月份列表, ROW(客)-ROW(客户分组)+1)))), 月度总营收, BYROW(客户营收, LAMBDA(和, SUM(和))), HSTACK(月份列表, 月度总营收) )
该公式会自动生成包含所有月份及其对应唯一客户营收总和的二维表格。
内容的提问来源于stack exchange,提问作者Fazza
相关产品推荐
相关产品推荐

