我有一张 Excel 工作表,我正在尝试使用公式根据另一列的值有条件地设置一列的值。
我有两列:
- 原文(文本)
- 处理后的文本(公式)
原文包含 markdown 格式的文本。部分文本粗体带有两个星号。
现在,在我处理的文本列中,我想检测**
并返回原始文本(如果**
存在)或将整个文本包装起来(**
如果不**
存在)。
例如:
apple
->**apple**
**apple**
->**apple
(无变化)
这是我的公式:
=IF(SEARCH("~*~*"+A2)+A2+"**"&A2&"**")
注意:我的系统使用+
作为分隔符,而不是更常见的,
。
我用来~
转义*
通配符。
问题是,如果SEARCH()
为假,我得到#VALUE!
:
**
那么我该如何替换中的字符串SEARCH()
?
Windows 11,Office 365
答案1
就像声明的那样这里:
如果未找到 find_text 的值,则返回错误值 #VALUE!
当*
文本中不存在时,您将得到结果,#VALUE!
因为*
未找到。将公式更改为:
=IF(ISERROR(SEARCH("~*",A4)),"**"&A4&"**",A4)
ISERROR
TRUE
如果发现错误(就您的情况而言) ,函数将返回。因此,如果出现错误,#VALUE
整个公式将添加。如果没有,它将返回单元格的值。**