当前位置: 首页 > 知识库问答 >
问题:

尝试将ARRAYFORMULA()与COUNTIF()和SPLIT()结合起来

郏经纬
2023-03-14

我试图找出我的每个同事正在处理多少个客户端,然后将用于其他计算。我的电子表格中有一列是每个同事的姓名首字母,用逗号分隔(这是我无法控制的),目前我可以点击并拖动公式

< code > = COUNTIF(SPLIT($B2,“,”,“name here”),

效果很好。然而,我需要把它转换成一个数组公式,这样做一切都会中断。出现的情况是,COUNTIF正在通过SPLIT(array,“,”)创建的整个2D数组进行计数,并给出单个总计,但我希望它通过每一行进行计数,一次一个,每一行都有一个总计。

我附上了一个电子表格,在单元格O2中尝试数组公式。

(顺便说一句,一个更简单的解决方案似乎是在首字母列中搜索同事的首字母,因为它们被设置为唯一的,但是一个同事有首字母“J”,因此会出现在“LJ”中,我看不出有通配符可以解决这个问题。)

共有1个答案

鞠源
2023-03-14

示例文件

请尝试以下公式,粘贴到 C2 中:

=阵列方程((B2:B24)-LEN(替代(B2:B24,C1:M1,“”))/LEN(C1:M1))

笔记:

  • 它替换文本,计算替换前后的文本长度,并用搜索文本的长度除以差值
  • 我假设字符串不包含另一个字符串:没有像“bo”和“boo”这样的对

另一种方法是使用公式:

=数组公式(mmult(--(IFERROR(SPLIT($B$2:$B$24,“,”)=C1,false)),arrayformula(SIGN(ROW(INDIRECT(“a1:a”)

在C2中并将其复制到范围C2: M2

笔记:

  • 它使用逻辑比较和mmult技巧按行对范围求和
  • mmult公式将更好地工作,但它会减慢您的计算速度。

 类似资料:
  • 我使用< code>COUNTIF来计算一个值在一个水平范围内出现的次数,这样做很好: 现在我想使用将该逻辑自动应用于整个列。我的问题是似乎不能很好地与一起使用,因为我的范围跨越水平和垂直。我尝试了几件事: 公式甚至不会在整个列中复制 : 使用额外的 技巧解决了上述问题,但结果是错误的 如何将应用于包含水平

  • 我有一个(Spring开机/Spring云)应用程序(微服务'MS'架构)与Netflix工具构建,我想将其部署在kubernetes集群(一个主和2个小跟班),以从其编排事实中获得优势。 顺便说一下,我在集群上创建了一个库贝-dns服务,我还尝试用3个Pod挂载一个eureka服务(名为eurekaservice)。另一方面,我运行了一个带有下一个eureka配置的微服务: 好消息是集群上的每个

  • 问题内容: 我在Android应用程序开发中从Java稍微转移到Kotlin,但是在某些情况下,我不想用Kotlin进行编码,而是希望这些特殊情况用Java编写: 省去Kotlin多余的使用量 我知道现在正是Java总是以相反的方式触发 还提供了表达式和许多其他功能。 但仍然,我的某些代码无法用Kotlin编写,例如成员或字段。 Kotlin注释实际上可以代替那些注释。但是喜欢Java的某些编码功

  • 问题内容: 尝试在我的js代码中使用DOMParser时遇到问题。在我的代码中,我通过xmlhttp.responseText soap响应检索了一个xml文件。我希望能够以JSON格式访问其元素,因此我的代码如下所示: 我收到此错误消息:ReferenceError:未定义DOMParser 编辑:此链接对我不起作用,因为我的JavaScript不在HTML页面中,因为它是一个node.js文件

  • 我想在React项目的后端合并一个使用语音识别的Python文件。 这里我有一段使用语音识别的Python代码: 我尝试在react组件中导入文件,如下所示: 在这里,我尝试将我的按钮链接到Python文件中的函数: 我收到了它未能编译的消息以及以下内容: 我能做些什么来使这个工作?

  • Usecase:使用EventTime并从Kafka的记录中提取时间戳。 我想要的是:Flink提取时间戳并在初始间隔(例如20秒)内为每条记录发出水印,然后它可以周期性地发出水印(例如每10秒)。 原因:如果我使用PeriodicWatermark,开始时Flink只会在一段时间间隔后发出水印,并且我的第一个窗口(5分钟)中的计数是错误的-比后续窗口中的计数大得多。我有一个解决办法,将自动水印间