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()
的结果转换为布尔值(TRUE
或FALSE
)。由于如果搜索找到匹配项,我们需要 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