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

Posted

技术标签:

【中文标题】Excel 2010 - 仅在小计单元格中计算唯一值【英文标题】:Excel 2010 - Count Unique values only in a SUBTOTAL cell 【发布时间】:2014-01-02 12:42:12 【问题描述】:

信息: Excel 2010(无宏)数据来源: mysql Query / 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】:

我希望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))

【讨论】:

所以我觉得自己像一只毛绒火鸡。我一直盯着 EXCEL & SQL 超过 12 个小时,我什至没有看到!非常感谢您,并选择了您提供的formula 作为示例! (我想我需要睡觉了!哈哈)谢谢你,祝你有美好的一天!

以上是关于Excel 2010 - 仅在小计单元格中计算唯一值的主要内容,如果未能解决你的问题,请参考以下文章

将固定范围的小计复制到其他表格单元格

仅在某些单元格中添加SubView

excel如何计算一列数字的总和?

Excel 2010 - 具有覆盖字段的值小计

Excel 2010 VBA:使用单元格中的值保存文件以确定路径和文件名

如何计算一行excel单元格中相同字符的出现次数