【问题标题】:Get unique values FIRST from sheet, then filter based on criteria首先从工作表中获取唯一值,然后根据条件进行过滤
【发布时间】:2018-10-09 13:46:24
【问题描述】:

我想看看你们中是否有人知道一个公式,该公式可以复制删除重复项/仅计算列表中的唯一值,然后根据多个条件计算唯一值。

我已经尝试过类似的公式:

{=SUM(--(FREQUENCY(IF(criteria,MATCH(values,values,0)),ROW(values)-ROW(values.firstcell)+1)>0))}

但它没有得到我想要的。

例如,假设我有这张桌子:

DATE    STATUS  ACCOUNT #
3-Dec-15    ONGOING 1391937
25-May-17   ON HOLD 1391937
13-May-17   ON HOLD 1391937
14-Sep-17   ONGOING 2490936
25-May-16   ONGOING 1285792
26-Jul-16   ON HOLD 1285792
21-May-17   ON HOLD 1285792
23-Feb-17   ON HOLD 1512450
26-May-17   ONGOING 2604610
23-Sep-17   ON HOLD 1122902

当日期在 2017 年内且状态为“保留”时,我想获取唯一帐号的数量。如果我使用这个公式

{=SUM(--(FREQUENCY(IF((B2:B11 = "ON HOLD")*(A2:A11 >= DATE(2017,1,1)),MATCH(C2:C11,C2:C11,0)),ROW(C2:C11)-ROW(C2)+1)>0))}

我会得到“4”,这就像首先过滤两个条件,然后计算唯一值。

但我真正需要的是“2”,就好像您首先删除了 ACCOUNT # 个重复项,然后针对其他两个条件进行了过滤。

这是可能的吗?也许我只是错过了一些东西,但希望你们能帮助我。

提前致谢!

编辑:对于 2017 年内的帐户,应该留下的帐号是 1512450 和 1122902,并且处于保留状态。

【问题讨论】:

  • 请给出最终结果中应计入的帐号。
  • 当您首先删除重复项,然后根据条件“ON HOLD”和 2017 年进行过滤时,结果的计数将不稳定。这取决于删除了哪些行。当您删除第 1 行和第 2 行时,帐户# 1391937 将计入最终结果(第 3 行)。当您删除第 2 行和第 3 行时,帐户# 1391937 将不会计入最终结果,因为它不是“ON HOLD”(而不是 2017 年)。
  • 所以你是说可以删除的行是可变的?因此,根据删除重复项的方式,我最终可能会得到不同的结果,对吧?
  • 是的。这就是我的意思。
  • 好吧,我想这回答了我的问题,毕竟我不能依赖不稳定的信息。感谢您帮助我,非常感谢:)

标签: excel excel-formula


【解决方案1】:

多单元格数组公式可以为您提供所需的结果。假设“日期”、“状态”和“帐户#”分别位于单元格 A1、B1 和 C1 中,选择单元格区域 D2:D100 和在公式栏中使用 Ctrl+Shift+Enter 组合输入 =RIGHT(TRIM(A$2:A$100),2)="17"。在选定范围 E2:E100 中输入 =(TRIM(B$2:B$100)= "ON HOLD") 在公式栏中使用 Ctrl+Shift+Enter。在 F2:F100 中输入 =IF(COUNTIF(C$2:C$100,C$2:C$100)=1,C$2:C$100,"")然后在 G2 中输入 =IF(D2*E2=0,"",F2),按 Enter 并向下复制。G2 列保存您的结果。

要获取符合条件的唯一帐户的计数,请使用 Ctrl+Shift+Enter 将此数组公式放入 G1:=COUNT((G2:G100)*1)。我在公式中的单元格范围纯粹是任意的。实际选择的范围应与您的数据范围相匹配。

【讨论】:

  • @ ThatOneCanadian :作为对我原始帖子的更新和简化的答案,将以下非数组公式放入 D2 并根据需要复制下来: =IF(((COUNTIF(C$2:C$11, C2)=1)*(TRIM(B2)="ON HOLD")*(RIGHT(TRIM(A2),2)="17"))>0,C2,"")。唯一的合格计数公式可以移动到单元格 D1。
  • @ ThatOneCanadian :如果您希望结果连续相邻,则可以将此数组公式放入 D2 并复制下来: =IFERROR(SMALL(IF(((COUNTIF(C$2:C $11,C3:C12)=1)*(TRIM(B3:B12)="ON HOLD")*(RIGHT(TRIM(A3:A12),2)="17"))>0,1*(C3: C12),""),ROW()-1),"").
猜你喜欢
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多