2017-01-04 168 views
0

我有一个包含多个工作表的工作簿。在工作表1上,我想计算A列中的人员在列C中具有满足列D =内容的标准的特定条目的次数,但只有列B是唯一值时才计数。Excel计算多个列的唯一值

使用下面的公式我可以做所有事情,除了只计算列B中的唯一数字。我在Sheet2 C2中输入该公式,然后拉到I2,然后在每列中下拉到6。

=IF(COUNTIFS(Sheet1!$A$2:$A$150,Sheet2!$B2,Sheet1!$C$2:$C$150,Sheet2!C$1,Sheet1!$D$2:$D$150,"Content")=0,"",COUNTIFS(Sheet1!$A$2:$A$150,Sheet2!$B2,Sheet1!$C$2:$C$150,Sheet2!C$1,Sheet1!$D$2:$D$150,"Content")) 

我正在使用double countifs不显示0的。

这里是什么样子的工作表Sheet1 Image

这里是我想表2看 enter image description here

任何帮助或建议将不胜感激。

回答

0

您可以通过数据透视表来实现这一点。

  1. 选择所有数据
  2. 插入 - >透视表
  3. 在弹出确保您勾选框与描述下方的“添加该数据的数据模型”,然后单击确定。这将为您创建工作表2。
  4. 透视表中的字段移动 “SR”的行节 “戏台”到列部分 “刺”来过滤部分 “QN”到值部分

  5. 现在右键点击在一些细胞枢轴,其通过示出QN 汇总值的总和/计数 - >更多optins

  6. 在弹出,滚动到底部并点击“重复计数”
  7. 在枢轴的滤波器部(第一行的数据透视表其中指出“产品”),选择“内容”

注意:如果第3步被遗漏,不同计数将不会出现在值部分。希望这可以帮助。

+0

谢谢你的回应。我希望我可以通过Macro完全实现自动化。有没有办法在宏中使用ta Pivot Table? – user3407426

+0

是的,你可以很容易地记录一个宏。实际上,您可以将它作为一次性工作,并创建一个简单的宏以在每次打开工作表时刷新数据透视表。另一种方法是将整个数据透视表创建记录为一个宏。这两种解决方案同样好用。 –

+0

这里是如何:http://www.pryor.com/blog/tips-for-creating-perfect-pivot-tables-with-a-macro/ –

1

Vijayakumar的答案作品。如果你需要一个简单的版本(无数据模型选项,使用这个公式E栏拖累

=SUMPRODUCT(--($B$1:B1=B2))>0 
  1. 选择所有数据
  2. 插入 - >透视表
  3. 数据透视表中的字段将“SR”的行节“舞台”列节“正式版” &“isUnique设置”(Col E)来过滤部分和“QN”到值部分在枢轴一些细胞
  4. 现在右键点击其中显示的金额/数量QN总结 值 - >计数
  5. 在枢轴的过滤器部分,选择“内容”
  6. 在枢轴(第二行的上 枢轴表的滤波部分,其指出“isUnique设置(其上指出“PROD” 透视表第一行) “),选择 “TRUE”

enter image description here

当你有新的数据,你只需要Change Data SourcePivot Table tools - >Analyze或刷新。但是,您可以将整个过程记录为宏来自动执行。

+1

你甚至可以创建大型行集枢轴和删除空白数据透视表。这样,当数据发生变化时,您可以简单地更新工作表和刷新枢轴而不是“更改数据源”选项 –

+0

当我使用= SUMPRODUCT( - ($ B $ 1:B1 = B2))> 0时,如果QN是唯一的,即不匹配下面的数字它返回一个FALSE。如果数字不唯一,则返回True。这是好的,但确实会导致我不得不将第6行中的过滤器更改为false而不是true。我是否错过了某个步骤或者导致了这种情况? - Shawn – user3407426

+0

我不再有excel文件,但是我建议如果你想反转结果,可以在'NOT()'函数中包装公式。 – nightcrawler23