当年龄为 18-30 岁且 male/female 时使用 CountUnique

Use CountUnique when age is 18yr-30yr and is male/female

我需要计算当年龄在 X-X 之间并且 Male/Female 时唯一 phone 数字的数量,输出到 table 个结果中。

这是用于输入公式的测试数据电子表格 - https://docs.google.com/spreadsheets/d/1H8LG1p14DHgYWUdykMGatVHzWZPmju-j2EcO0_u9PIA/edit?usp=sharing

来自:

创建:

要获取年龄,请使用 DATEDIF(Data!$B:$B, TODAY(), "Y")。然后使用 COUNTUNIQUEFILTER 得到你的结果,在没有匹配的情况下用 IFERROR 换行默认为 0。

如果需要,您可以参数化 min/max 年龄,但是您可以将这里的硬编码公式粘贴到结果 sheet 的 A2、B2 和 C2 中,然后向下复制到第 3 行以填写您的 table:

结果!A2(18-25 岁): =COUNTUNIQUE(IFERROR(FILTER(Data!$A:$A, DATEDIF(Data!$B:$B, TODAY(), "Y")>=18, DATEDIF(Data!$B:$B, TODAY(), "Y")<26, Data!$C:$C=$A2)))

结果!B2(26-45岁): =COUNTUNIQUE(IFERROR(FILTER(Data!$A:$A,DATEDIF(Data!$B:$B, TODAY(), "Y")>=26, DATEDIF(Data!$B:$B, TODAY(), "Y")<46, Data!$C:$C=$A2)))

结果!C2(46 岁及以上): =COUNTUNIQUE(IFERROR(FILTER(Data!$A:$A, DATEDIF(Data!$B:$B, TODAY(), "Y")>=46, Data!$C:$C=$A2)))

View workbook copy with working solution.


更新:具有动态年龄范围的替代解决方案

如果您在结果 table 上方插入一个额外的行来指定您希望包含在该列中的最小年龄,您可以简化整个结果 table 中使用的公式,使其与每列。

以下解决方案采用与原始结果 table 相同的 table 结构,但 B1、C1 和 D1 包含列中显示的最小年龄(即 18、26、和 46),并且 table header 从第 2 行开始。

要构造新列 headers,请将以下内容输入 B2,然后复制到 C2 和 D2:

  • =IF(B="",, B&IF(C="", "yr and over", "-"&(C-1)&"yr"))

要计算结果值,请将以下内容输入 B3,然后复制到 C3 和 D3 列,然后向下复制到第 4 行:

  • =COUNTUNIQUE(IFERROR(FILTER(Data!$A:$A, DATEDIF(Data!$B:$B, TODAY(), "Y")>=B, DATEDIF(Data!$B:$B, TODAY(), "Y")<IF(C="", 9999, C), Data!$C:$C=$A3)))

View alternative solution using dynamic age ranges ("Result (Parameterized)").

虽然 的答案很有希望,但它存在一个重大缺陷,因为 FILTER 没有包含在 IFERROR 中,COUNTUNIQUE 将算作 #N/A 错误(例如,过滤器没有结果)为 1 而不是 0,因此:

B2 单元格中使用此公式:

={{COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A2,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=B1, DATEDIF(Data!B2:B, TODAY(), "Y")<C1)));
   COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A3,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=B1, DATEDIF(Data!B2:B, TODAY(), "Y")<C1)))},
  {COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A2,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=C1, DATEDIF(Data!B2:B, TODAY(), "Y")<D1)));
   COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A3,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=C1, DATEDIF(Data!B2:B, TODAY(), "Y")<D1)))},
  {COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A2,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=D1)));
   COUNTUNIQUE(IFNA(FILTER(Data!A2:A, Data!C2:C=A3,
   DATEDIF(Data!B2:B, TODAY(), "Y")>=D1)))}}

spreadsheet demo