我有一个相当复杂(至少对我来说)的嵌套 IF(ISNUMBER 公式,我想包装或包含 SUBSTITUTE 来删除““ 从公式结果中替换““ 中间有一个空格 “ ”。
当公式相当基础时,我在这里问过类似的问题,但由于那个问题已经得到了感激的回答,所以我认为提出一个新问题比较合适。
下面的公式输入到单元格 B1 中,并查看单元格 A1 中包含字母和数字的字符串,并在字符串中查找单词 Wav、mp3、flac 或 mogg 的出现情况。然后,该公式运行嵌套公式,查找并显示与单词 Wav、mp3、flac 或 mogg 相关的额外信息。
虽然我知道这个公式并不优雅,但是这一切都工作正常,但它从中提取结果的字符串有“_”将字符串内的所有单词分开,我试图在公式结果中用一个简单的空格“ ”替换这些单词。
该字符串看起来像 Artist_-_Album_Title_[Source]_(14_Tracks)_44.1_kHz_16_bit_Wav
该公式实际上是提取“16 位”部分,也可以是 32、64 或 128 位,我需要结果是“16 位”等等。
主要公式
=IF(ISNUMBER(SEARCH("wav",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("Wav",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("flac",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("flac",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mp3",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mp3",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mogg",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mogg",A1)-SEARCH("KHz",A1)-5),"NO"))))
为了使事情变得更加复杂,我使用下面的方法检查 A 列中的单元格是否为空白,如果不是,则运行上述公式,但如果 A1 为空白,则不执行任何操作。
=IF(A1="","",SUBSTITUTE(A1,"_"," "))
正如我所说,它们单独使用效果都很好,但这远远超出了我的技术水平,我无法将两者结合起来?
答案1
一次一口地吃掉这头大象。
您有一个有效的公式。接下来,将 Substitute() 函数包装在您的公式中。
=SUBSTITUTE(YourWorkingFormula,"_"," ")
编辑公式时,使用 Alt+Enter 换行,可以更好地识别公式元素
=SUBSTITUTE(
IF(ISNUMBER(SEARCH("wav",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("Wav",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("flac",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("flac",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mp3",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mp3",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mogg",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mogg",A1)-SEARCH("KHz",A1)-5),"NO")))),
"_",
" ")
现在,将 IF 语句括起来。您可以使用空格来缩进公式的各个部分
=IF(A1="","",
SUBSTITUTE(
IF(ISNUMBER(SEARCH("wav",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("Wav",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("flac",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("flac",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mp3",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mp3",A1)-SEARCH("KHz",A1)-5),IF(ISNUMBER(SEARCH("mogg",A1)),MID(A1,SEARCH("kHz",A1)+4, SEARCH("mogg",A1)-SEARCH("KHz",A1)-5),"NO")))),
"_",
" ")
)