Google 工作表:数组公式中有多个 "if" 和 "find"

Google Sheets: Multiple "if" and "find" within an Array formula

背景信息 - 不重要

我意识到在使用 Android 应用程序时,我需要提高理解逻辑和理解文档的能力。所以,我想我会切换到 Google Sheets,希望在我可能更容易理解的上下文中进行一些基本练习。

问题

我设置了一个 Google Sheet: https://docs.google.com/spreadsheets/d/1T7q_CGMFObxS_0DGikUdSdLTf97XmEPXY0S7yItuA5Y/edit?usp=sharing

我希望 B 栏:

然后可以添加更多条件。

我的 B 列公式目前是:

=ARRAYFORMULA(
 IFS(
    find("Black", A2:A,1)>0,"Folder1",
    find("Blue", A2:A,1)>0,"Folder2",
    find("Green", A2:A,1)>0,"Folder3")
 )

如果找到 "Black" 并且不继续 if 子句的其余部分,则仅满足第一个条件 "Folder1"

我认为我已经正确地嵌套了它,因为所有 IFS() 都与其对应的 find() 处于同一级别。而且,我有两个右括号关闭 IFSARRAYFORMULA.

我只是没有使用正确的函数来完成我想做的事情吗?

感谢您对我如何解决这个问题的建议!

问题是 find() 只有 returns 一个数字 > 0 如果它确实找到了匹配项。否则它 returns 一个你无法明确测试的错误。

您可以像这样修复您的代码:

=ARRAYFORMULA(
 IFS(
 isnumber(find("Black", A2:A,1)),"Folder1",
 isnumber(find("Blue", A2:A,1)),"Folder2",
 isnumber(find("Green", A2:A,1)),"Folder3")
 )

现在我们可以测试 find() returns 是一个数字并且代码可以工作! 显然,为了清楚起见,我使用了多行。