google-sheets - 在 Google 表格中,如何通过 ArrayFormula() 计算行中特定单词的出现次数
问题描述
我无法通过计算行中的特定单词ArrayFormula
。
下面是我想要实现的图像。
我试过用COUNTIFS()
函数计数,但它计算整个数据集中的出现次数,而不是每行。
在此示例中,E 列必须ArrayFormula
计算所有出现的“INBOX”
,而
F 列应该ArrayFormula
计算所有出现的“SENT”
我已经使用了自定义函数来执行此操作,但是由于它不是内置函数,因此速度非常慢。
解决方案
我认为这回答了你的问题:
=ArrayFormula(if(len(A2:A), countif(if(A2:D="inbox", row(A2:A)), row(A2:A)),))
解释不是很明显,但在这里:
ArrayFormula(if(something))
:数组公式将为每一行运行 if 语句:if(len(A2:A), something, )
: 将检查每行(A
单元格)的第一个值是否不为空,如果有任何值,则运行公式,如果没有,则不要运行(注意最后的逗号,在右括号之前, )
。一个可能替代方案是:if(not(isblank(A2:A)), something, )
countif( something )
:将根据条件计算出现的次数。if(A2:D="inbox", row(A2:D))
- 有趣的部分来了,因为这个公式将分配它所在行的值,如果它发现任何出现的文本“收件箱”在其中。可以举一个例子,如果我们countif()
从公式中删除 ,结果将是: 可以看到,作为其中一部分的每个值都if(A2:D="inbox", row(A2:D))
将被分配该行的值。
当我们收集最后两个公式时,我们有以下内容:
countif(if(A2:D="inbox", row(A2:A)), row(A2:A))
这意味着我们将计算值 2 出现了多少次(仅在第 2 行中存在),值 3 出现了多少次(仅在第 3 行中),依此类推
推荐阅读
- php - 使用 for 循环和 ceil 创建平衡组
- java - 每次更新tableview数据时如何修复内存增加
- android - 如何在布局的新行中添加项目?
- arrays - 使用 swift 将自定义类数据保存到核心数据中
- c# - 如何在 Windows 窗体应用程序的按钮中放置指向浏览器中外部网站的链接?
- rotation - 在 Processing 中旋转、反转和平移 PShape 对象
- python - 在 venv 上安装 pip 后出现 ModuleNotFoundError
- laravel - Laravel 5.7 can't parse POST multipart/form-data request
- embedded-linux - 任务 415 (virtual:native:/home/user/Yocto/Poky/poky/meta/recipes-devtools/automake/automake_1.15.bb, do_compile) 失败,退出代码为“1”
- node.js - Mongoose - 如何使用每个 Reord 的一个值更新许多特定记录?