【问题标题】:How to use Excels COUNTIF in every nth cell and retain wildcard functionality如何在每个第 n 个单元格中使用 Excels COUNTIF 并保留通配符功能
【发布时间】:2014-04-15 13:09:41
【问题描述】:

我一直在寻找网络上的每一个地方,每个人似乎都只是建议像SUMPRODUCT 这样的替代方案,但是,我想使用通配符。通配符在 COUNTIF 中可以正常工作,但在我见过的其他替代方案中却不行。

如何搜索列中的每个第 n 个单元格并返回找到确切子字符串的次数的计数(即COUNTIF(range, string),其中 范围每第 n 个单元格字符串 可以是 "*somestring""some string*""*somestring*""some?string")

【问题讨论】:

    标签: excel range wildcard countif


    【解决方案1】:

    是的,SUMPRODUCT 是一个选项 - 假设您希望从 A2 开始每隔 5 个单元格(即 A2、A7、A12 等),您可以使用此公式计算这些单元格中“文本”的实例(可能在其他单元格中)文字)

    =SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,ISNUMBER(SEARCH("text",A2:A1000))+0)

    将 5 更改为您想要的任何 n - 如果您使用此语法,它总是从范围中的第一个单元格开始。

    ISNUMBER(SEARCH 部分相当于“通配符”搜索(此处不能使用实际的通配符)

    更新

    如果您想要“文本*”的等价物,请使用 LEFT 函数,例如

    =SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,(LEFT(A2:A1000,LEN("text"))="text")+0)

    而 RIGHT 可用于“*text”的等价物。

    如果您想要等效的“t?xt”,那会更棘手。第一个公式中的 SEARCH 函数将允许您搜索“t?xt”,但这将是其他文本,因此如果您希望整个内容为“t?xt”,您可以添加另一个检查,例如

    =SUMPRODUCT((MOD(ROW(A2:A1000)-ROW(A2),5)=0)+0,ISNUMBER(SEARCH("t?xt",A2:A1000))+0,(LEN(A2:A1000)=4)+0)

    这只会计算包含“text”、“toxt”、“t5xt”等但不包含“text2”的单元格

    【讨论】:

    • 我说我想在我的问题中使用通配符。我还没有看到这样做的解决方案。如果我想搜索“text”或“text 2”或“t?xt”...怎么办?
    • @JacobD 这是三个不同的字符串。对于 OR,您将分别搜索每一个并将它们相加。搜索承认?和 * 作为通配符,所以第三个字符串的结果应该符合预期。
    • @RonRosenfeld 我的意思是我想在不同的场合搜索它们。答案是:“ISNUMBER(SEARCH 部分给你相当于一个“通配符”搜索(你不能在这里使用实际的通配符)”然后你说:“搜索识别 ? 和 * 作为通配符”所以我可以使用通配符? 当我实施此解决方案时,通配符似乎无法正常工作,如答案所述。
    • @JacobD 它按描述工作。阅读 Excel HELP 以了解 SEARCH 功能。然后向我们准确展示您用于公式的内容;您的数据到底是什么;您的实际结果;以及您的预期结果。
    • 如所写,公式将计算 A2、A7 等中包含“文本”的任何单元格,因此相当于使用“文本” “在 COUNTIF 中。对于“text*”或“*text”,您可以使用LEFTRIGHT 函数代替ISNUMBER(SEARCH,我编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多