Excel 2010 - 仅在SUBTOTAL单元格中计算唯一值

时间:2014-01-02 12:42:12

标签: excel excel-formula excel-2010 subtotal

信息: Excel 2010(无宏)
数据设定: MySQL查询/ phpMyAdmin 服务器: Apache
代码通过以下方式运行:服务器SQL查询(在phpMyAdmin中复制和粘贴)或在MySQL Workbench中或使用自定义购物车管理器。
导出到: Excel(.csv然后是.xlsx用于销售报告)
注意:工作簿使用我的查询以及其他数据

问题
我有2个公式。 1是有效的,1是接近但最终是错误的 1)获取唯一OrderID的总数(在我的情况下为2342)但是当我过滤数据时它不会减少到'SUBTOTAL'。
=SUMPRODUCT((A8:A30001<>"")/COUNTIF(A8:A30001,A8:A30001&""))

=SUM(IF(FREQUENCY(IF(LEN(A8:A10001)>0,MATCH(A8:A10001,A8:A10001,0),""), IF(LEN(A8:A10001)>0,MATCH(A8:A10001,A8:A10001,0),""))>0,1))(SHIFT + CTRL + ENTER)

2)返回SUBTOTAL但计数超出1(返回8,而不是7):
=SUM(IF(FREQUENCY(IF(SUBTOTAL(3,OFFSET(A7,ROW(A7:A10000)-ROW(A7),,1)), IF(A7:A10000<>"",MATCH("~"&A7:A10000,A7:A10000&"",0))),ROW(A7:A10000)-ROW(A7)+1),1))(SHIFT + CTRL + ENTER)

=SUM(--(FREQUENCY(IF(SUBTOTAL(3, OFFSET(A7:A10000, MATCH(ROW(A7:A10000), ROW(A7:A10000))-1, 0, 1)), COUNTIF(A7:A10000, "<"&A7:A10000), ""), COUNTIF(A7:A10000, "<"&A7:A10000))>0))(SHIFT + CTRL + ENTER)

数据
已过滤:订单月份,产品ID = 7个单位

OrdID   ProdName    Qty
2525    test            1
2538    test            1
2553    test            1
2555    test            1
2556    test            1
2564    test            1
2566    test            1 

提前感谢您的见解。

1 个答案:

答案 0 :(得分:4)

我希望2)中的公式可以正常工作,你确定结果的差异不是由不同的范围引起的 - 你的第一个公式是从第8行开始,第二个公式是从第7行开始吗?您是否在数据中包含标题行,因此结果为8而不是7?

如果A列中的订单ID是数字,那么此版本也应该起作用

=SUM(IF(FREQUENCY(IF(SUBTOTAL(3,OFFSET(A7,ROW(A7:A10000)-ROW(A7),,1)),A7:A10000),A7:A10000),1))