【问题标题】:Count unique values in a range, using an indirect cell reference使用间接单元格引用计算范围内的唯一值
【发布时间】:2017-07-31 17:45:33
【问题描述】:

您好,我正在尝试使用一个标准来计算一个范围内唯一产品代码的数量。

到目前为止的公式是:

 =COUNTIFS(INDIRECT("'" & B7 & "'!" & B8 & ":" & B9),"*Germany*",INDIRECT("'" & O7 & "'!" & O8 & ":" & O9),"criteria for counting unique values")

我不明白如何采用我在网上看到的公式来使用我正在使用的INDIRECT 范围引用。

需要计数的唯一值范围是包含字母和数字字符的产品代码,单元格类型是文本。

有人可以帮我了解我需要添加到我的公式中吗?

谢谢。

【问题讨论】:

    标签: excel count unique excel-indirect


    【解决方案1】:

    如果没有空格,可以试试:

    =SUMPRODUCT((INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany")/COUNTIFS(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&B7&"'!"&B8&":"&B9),INDIRECT("'"&B7&"'!"&B8&":"&B9)))
    

    这假设您的 INDIRECT 正确解析到您想要的地址:

    • B7:第一个范围的工作表名称
    • B8:第一个范围的起始单元格
    • B9:第一个范围的结束单元格
    • O7:第二个范围的工作表名称
    • O8:第二个范围的起始单元格
    • O9:第二个范围的结束单元格

    【讨论】:

    • 我注意到“Germany”已更改为“Germany”,不幸的是,这并没有计算所有实例,它必须是“Germany ”。当我尝试将其更改为“Germany”时,它显示为 0,这是为什么呢?
    • 好吧,它出于某种原因删除了外卡,德国应该在它的前面和末尾都有外卡。
    • @DPhillips 需要一个不同的算法来解决这个问题。 ISNUMBER(SEARCH("GERMANY",... 应该这样做。但我现在没时间检查。
    【解决方案2】:

    这是另一种方式 - 改编自 Barry Houdini's answersee also

    =SUM(IF(FREQUENCY(IF(INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany",MATCH(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),0)),ROW(INDIRECT(O8&":"&O9)))>0,1))
    

    如果您愿意,可以为空白单元格添加测试

    =SUM(IF(FREQUENCY(IF(INDIRECT("'"&B7&"'!"&B8&":"&B9)="Germany",IF(INDIRECT("'"&O7&"'!"&O8&":"&O9)<>"",MATCH(INDIRECT("'"&O7&"'!"&O8&":"&O9),INDIRECT("'"&O7&"'!"&O8&":"&O9),0))),ROW(INDIRECT(O8&":"&O9)))>0,1))
    

    是数组公式,必须用CtrlShiftEnter

    输入

    【讨论】:

    • 我有与上述相同的问题,需要输入通配符,因为单元格中可以包含多个国家/地区。例如(德国)、(德国、法国、比利时)、(比利时、德国、意大利)等。括号仅用于分隔语句。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    相关资源
    最近更新 更多