calc/excel 如果在两个单元格中查找文本并输出文本

Posted

技术标签:

【中文标题】calc/excel 如果在两个单元格中查找文本并输出文本【英文标题】:calc/excel if find text in two cells and output text 【发布时间】:2014-04-18 21:33:52 【问题描述】:

这可能太简单了,但我就是找不到解决方法。 我要细胞

  A1              B1
high ground     low water

所以我需要一个公式来说明如果单元格 A1 包含“高地”并且单元格 B1 包含单词“水”输出“OK”,否则输出“no ok”

提前致谢

【问题讨论】:

我对openoffice不太熟悉,但是可以试试=IF(COUNTIF(A1,"*high ground*")+COUNTIF(B1,"*water*")=2,"OK","NOT OK")或者=IF(AND(ISNUMBER(SEARCH("high ground",A1)),ISNUMBER(SEARCH("water",B1))),"OK","NOT OK") 【参考方案1】:

下一个公式对我有用:

=if(AND(A2="high ground",(B2=SEARCH("water",B2,1))>0),"ok","not ok")

我假设单元格 A2 包含高水位,而单元格 B2 包含低水位。

在 if 语句中,有两个条件:如果单元格 A2= 高地,如果单元格 b2 包含水,则可以,否则不可以。

希望对你有用!!

抱歉,下一个是正确的(没有 HALLAR,而是 SEARCH):

请尝试下一步:

=IF(AND(A1="high ground",(B1=SEARCH("water",B1,1))>0),"ok","not ok"

【讨论】:

抱歉,下一个公式是正确的(没有 HALLAR 代替 SEARCH):=IF(AND(A1="high ground",(B1=SEARCH("water",B1,1))>0) “好”、“不好”)【参考方案2】:

对于 OpenOffice / LibreOffice Calc,以下功能应该可以工作:

=IF(AND(A1 = "high ground";NOT(ISERROR(SEARCH("water";B1;1))));"OK";"not OK")

或者用 cmets 分成多行:

=IF(                                   # First function: result will depend on condition
    AND(                               # Condition: two sub-conditions have to be TRUE
        A1 = "high ground";            # First subcondition: simple equality check
        NOT(                           # Second subcondition
            ISERROR(                   # Check if the embededded function (SEARCH()) returns an error
                SEARCH("water";B1;1)   # Search B1 for substring. Will throw an error if there's no match in B! for string "water"
            )
        )
    );
    "OK";                              # Return value if condition is fulfilled;
    "not OK"                           # return value if on of the sub-conditions isn't fulfilled.
)

NOT(ISERROR(SEARCH("water";B1;1))) 有点复杂。由于SEARCH() 函数(以及FIND() 函数)在不匹配时会引发错误,因此您必须处理该错误,否则完整的公式将返回错误而不是字符串“not ok”。对于错误处理,我将SEARCH() 函数放入ISERROR() 函数中,将SEARCH() 的结果转换为布尔值(TRUEFALSE)。由于如果搜索找到匹配项,我们需要 TRUE 结果,因此我们必须使用 NOT() 函数“反转”ISERROR() 的输出。

也可以使用正则表达式搜索子字符串,但这需要在 Calc Program Options 中启用正则表达式;使用ISERROR(SEARCH()) 的建议解决方案应该独立于该配置设置。

【讨论】:

现在我需要处理大约 4000 行,我一遍又一遍地使用这个过滤器来获得我需要的不同输出,但在某些时候 calc 会超出它的限制并给我一个错误,可能是因为我用得太多。我想知道如何处理这个......【参考方案3】:

试试这个:

=if(AND(A1="high ground",B1="*water*"),"OK","Not OK")

【讨论】:

为什么你认为它没有提供答案? 大家好,这些似乎都不起作用。在 calc 中我收到 501 错误,在 excel 2007 中会弹出一个对话框,说明公式中的错误。我做错了吗? 您可能必须将参数分隔逗号替换为分号。这取决于计算语言设置。语言设置为英语(美国),以下公式有效:=IF(AND(A1 = "high ground";B1 = "low water");"OK"; "not OK")【参考方案4】:

对不起,我在 If 语句中包含通配符之前的回答,由于某种原因,excel 无法识别它们。

我已经测试过这个,它应该适合你:

=IF(AND(A1="high ground",ISNUMBER(SEARCH("water",B1))),"OK","Not OK")

【讨论】:

以上是关于calc/excel 如果在两个单元格中查找文本并输出文本的主要内容,如果未能解决你的问题,请参考以下文章

试图在列的每个单元格中查找重复的逗号分隔文本

在 OpenOffice Calc/Excel 中格式化 #N/A

如何查找单元格中是不是包含部分文本并引用另一列数据

查找和替换替代方法?而不是 "REPLACE",只是简单地添加文本到现有的单元格中?

在 iOS 中,如何在两个单元格中的文本字段之间切换?

UIImageView 重复显示在另一个单元格中