【问题标题】:How to define a non continuous range in COUNTIF如何在 COUNTIF 中定义非连续范围
【发布时间】:2012-01-15 07:23:37
【问题描述】:
   A    B   C

1  Β        Β
2  Β        Β
3  Α        Α
4  Α        Α
5  Β        Β
6  Α        Α
7  Α        B
8  Β        Β
9  Β        Β
10 Α        Α
11 Β        A
12 Α        Α
13 Α        Α
14 Β        Β
15 Α        Α
16 Β    ??  

在单元格 B16 中,我想计算单元格 C1:C15 A16 中有多少个“B”(A16 中的值)。然后使用一些函数,我将在单元格 C16 中放置一个“A”或“B”。如何在 COUNTIF 中给出这样的范围? B列中的每个单元格都必须使用相同的公式。

【问题讨论】:

    标签: excel formula


    【解决方案1】:

    下面是单元格 B16 的公式: =SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"B"))

    【讨论】:

    • 不错的一个 - 我不知道您可以在 INDIRECT 中使用 { } 来声明非连续范围
    • 您可以使用INDIRECT 创建一个范围数组,但您只能将其传递给字符串。因此,您需要手动更新每个单元格的范围。或者,您可以编写一个 VBA 函数来执行此操作。
    【解决方案2】:

    作为复制和粘贴的替代方法,您可以这样做:

    =COUNTIF($C$1:$C$15,"B") + COUNTIF(A16,"B")
    

    【讨论】:

    • 虽然我的回答可能是向人们介绍INDIRECT 功能的工具,但这个回答非常简单。
    • 虽然对于许多不连续的单元格来说有点麻烦,但如果删除行或列,它具有自动调整单元格的巨大优势。非常感谢。
    【解决方案3】:

    作为记录,如果我理解得很好,您想从单元格A16 中计算值。但是如果你做这样一个公式:

    =COUNTIF(C1:C15,A16)
    

    知道您将在单元格A16 中获得值(此处为B),不是吗?

    所以你想要得到的值是:

    =COUNTIF(C1:C15,A16) + 1
    

    我误会了什么?

    【讨论】:

    • 不,我不知道。它可以是 A 或 B。所以我不能使用“+1”
    • 如果您在公式中使用 var(在本例中为 A16)则不会
    • 好吧,我应该说其实我想要一个公式来计算abs(alphas-betas)
    【解决方案4】:

    您也可以声明非连续范围的命名范围,但在声明范围时必须使用 INDIRECT 函数。否则,它将像正常的非连续范围一样失败。

    声明范围(“Range1”)应具有“适用于”字段:

    =INDIRECT({"A1:B2","C4:F17"})
    

    或使用其他命名范围:

    =INDIRECT({"Table1[Column1]","Table2[Column3]","Table4[Column2]")
    

    然后你可以像这样引用它:

    =COUNTIF(Range1,"=Yes")
    

    【讨论】:

      【解决方案5】:

      这也有效! =SUM(COUNTIF(INDIRECT({"J18","J45","J78","J112","J140","J173","J205"}),">1"))

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-09
        • 2019-09-22
        • 1970-01-01
        • 1970-01-01
        • 2014-02-12
        • 1970-01-01
        相关资源
        最近更新 更多