我之前没有创建帐户就问过一个问题,并收到了用户 Jeorje 的良好回复,但我没有提供太多细节,也无法回复他们的评论。
因此,我决定再次尝试提供更多细节、我正在使用的表格中的示例以及继续回复评论的能力。
我希望创建一个系统,允许输出可更改的日期范围内关键字或短语在一段文本或文档标题中包含的次数。
我当前在单元格 D1 中创建输出以计算日期范围内的条目数量的公式是:
=COUNTIFS('Main Sheet'!A:A,">="&Trends!C1,'Main Sheet'!A:A,"<="&Trends!A1)
我目前使用的公式在单元格 H2 中创建输出,计算来自单元格 G2 的包含关键字的条目数量:
=(SUM((LEN('Main Sheet'!H:H)-LEN(SUBSTITUTE((LOWER('Main Sheet'!H:H)),LOWER(G2),"")))/LEN(G2)))
我想知道是否有办法将这两个公式结合起来以产生我想要的效果,或者是否有第三个公式可以将这两个公式的数据结合起来以产生我想要的效果。如果我完全错了,我也想知道这一点。
非常感谢!
主表图片
答案1
我相信以下方法可以达到目的:
==SUM(IFERROR(IF( 'Main Sheet'!A:A >= Trends!C1, IF( 'Main Sheet'!A:A <= Trends!A1, FIND( G2, 'Main Sheet'!H:H ), NA() ), NA() ), " " ))
(我添加了很多额外的空格,使其元素更加突出。每组都是两个空格,因此您可以添加Find and Replace
两个没有空格的空格,并且我添加的所有空格都可以轻松删除。)
我计算出的公式版本(使用我的测试电子表格中的单元格)在很多变体中都运行良好。然后,我将您两个公式的引用放到它们所属的位置,替换我的公式。我没有命名几张表等来测试我是否做得完美……所以如果您发现它失败了,请花一点时间确保我首先正确复制和粘贴,您知道,遗漏了一个字符或其他什么的。
我遇到的困难IF()
似乎是要关闭 SPILL 功能,例如,它将在 Excel 的内部工作中阻止创建字符串{FALSE;FALSE,TRUE,FALSE}
。或者看起来这就是机制。这让你对单个单元格进行大量测试。但是,正如您所见,并非总是如此,最后我找到了一种不会破坏事物的组合。
基本上,我以前FIND()
在 Excel 中得到一个 {} 字符串。它会查找您想要的值,可能是“water”,并为您提供字符串中该值开头的字符数。因此,您可以得到“5”或“2,184”,但在字符串中,内部如下所示:{“5”;“2184”} 并将COUNT()
它们视为两个项目,而不是五位数字,因此是五个项目。
无论如何,如果日期范围不匹配,将产生 #NA 错误,而如果在搜索字符串中找不到搜索值,将产生 #VALUE 错误。如果成功,将产生在搜索字符串的第一个字符处找到的字符数。因此,您将得到一个 {} 字符串,其中包含 Excel 呈现给该IFERROR()
函数的错误和数值。它的输出当然是非错误的值,以及任何实际错误的空格。您可以改用一组双引号(“”),但我喜欢空格,因为它会强制在任何情况下将结果视为文本,因此它永远不会以某种方式出错,也许会被 Excel 视为 0,并计入。COUNT()
只喜欢数字,因此强制它们始终为文本可确保它们永远不会添加到结果中。
然后COUNT()
简单地计算该字符串并返回与所有三个项目匹配的地点数、开始和结束日期(日期范围)以及搜索单元格中搜索字符串的出现次数。
我确实希望我在这里有正确的想法!