試圖用通配符文本構(gòu)建IF語句,但每次都會失敗?問題不在您的公式中,而是在功能本身中 - 如果不支持通配符字符,則表現(xiàn)出色。但是,有一種方法可以使其用於部分文本匹配,本教程將教您如何處理。
每當(dāng)您想在Excel中進(jìn)行部分或模糊匹配時,最明顯的解決方案就是使用通配符。但是,如果您需要使用的特定功能不支持通配符字符怎麼辦?可悲的是,如果是這樣的功能之一??紤]到其他“條件”功能(例如Countif,sumif和平均水平)與通配符非常好,這尤其令人失望。
幸運(yùn)的是,這不是可以阻止創(chuàng)意Excel用戶的障礙:)通過將其與其他功能相結(jié)合,您可以強(qiáng)迫它評估部分匹配,並獲得excel的不錯替代方法,即如果是通配符公式,則可以將其替換為Excel。
為什麼在通配符不起作用的情況下表現(xiàn)出色
在下面的示例表中,假設(shè)您要檢查第一列中的ID是否包含字母“ A”。如果找到 - 在B列中顯示“是”,如果不是 - 顯示“否”。
似乎在邏輯測試中包含通配符文本將是一個簡單的解決方案:
=IF(A2="*a*","Yes", "No")
但是遺憾的是,它行不通。該公式返回所有單元格,甚至包含“ A”的單元格:
為什麼通配符如果陳述失???從所有外觀中,Excel都無法識別帶有同等標(biāo)誌或其他邏輯運(yùn)算符的通配符。仔細(xì)研究支持通配符的功能列表,您會注意到他們的語法假設(shè)通配符文本直接出現(xiàn)在這樣的論點(diǎn)中:
=COUNTIF(A2:A10, "*a*")
如果包含部分文本,那麼擅長
現(xiàn)在,您知道了公式如果公式失敗的通配符的原因,讓我們嘗試弄清楚如何使其工作。為此,我們將簡單地嵌入一個在邏輯測試中接受通配符的函數(shù),即countif函數(shù):
if(countif( cell ,“ * text *”),value_if_true,value_if_false)使用這種方法,如果理解通配符沒有問題並完美地識別包含“ A”或“ A”的單元格(因?yàn)镃ountif並非對病例敏感):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
該公式轉(zhuǎn)到第2行中的B2或任何其他單元格,然後您可以根據(jù)需要將其拖到盡可能多的單元格:
該解決方案也可以用於定位特定圖案的字符串。假設(shè)只有由2組組成的2組組成的ID與連字符分開是有效的,則可以使用“ ?? - ??”。通配符字符串以識別它們:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
該公式如何工作:
對於IF的邏輯測試,我們使用計(jì)算匹配指定通配符字符串的單元格數(shù)的Countif函數(shù)。由於標(biāo)準(zhǔn)範(fàn)圍是單個單元格(A2),因此結(jié)果始終為1(匹配)或0(找不到匹配)。鑑於1等於true,而0等於false,當(dāng)計(jì)數(shù)為1時,公式將返回“有效”(value_if_true),而計(jì)數(shù)為0時則返回一個空字符串(value_if_false)。
如果是部分匹配的ISNUMBER搜索公式
如果要在部分文本匹配工作的情況下,強(qiáng)迫Excel的另一種方法是將查找或搜索功能包括在邏輯測試中。不同之處在於,發(fā)現(xiàn)尚未搜索,而不是搜索。
因此,根據(jù)您要將小寫和大寫視為相同或不同的字符,這些公式之一將有效:
局部匹配的情況不敏感公式:
if(isnumber(搜索(“文本”,單元格)),value_if_true,value_if_false)局部匹配的案例敏感公式:
if(isnumber(find(“文本”,單元格)),value_if_true,value_if_false)由於兩個功能都設(shè)計(jì)用於執(zhí)行“包含”匹配類型的類型,因此在這種情況下,通配符並不需要。
例如,要檢測包含“ A”或“ A”的ID,該公式為:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
僅搜索資本“ A”而忽略“ A”,該公式是:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
在下面的屏幕截圖中的B6中,您可以觀察結(jié)果的差異:
該公式如何工作:
在公式的核心中,isnumber和搜索(或查找)的結(jié)合:
ISNUMBER(SEARCH("A", A2))
搜索功能查找指定的文本(在此示例中“ A”),並返回其在A2中的字符串中的位置。如果找不到文本,則返回#Value錯誤。由於兩個搜索和發(fā)現(xiàn)都被設(shè)計(jì)為執(zhí)行“包含”匹配類型的類型,因此在這種情況下,通配符並不需要。
ISNUMBER函數(shù)將一個數(shù)字轉(zhuǎn)換為True和任何其他值,包括錯誤。邏輯值直接用於IF的邏輯測試。在我們的情況下,A2包含“ A”,因此Isnumber返回真實(shí):
IF(TRUE, "Yes", "No")
結(jié)果,如果返回value_if_true參數(shù)的值集,則為“是”。
出色的if或與通配符的聲明
是否需要識別包含一個通配符文本字符串之一的單元格?在這種情況下,您可以將經(jīng)典IF或語句與上面討論的Countif或Isnumber搜索公式相結(jié)合。
例如,在A2中搜索“ AA”或“ BB”,忽略字母案例並返回“是”,請使用以下公式之一:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
或者
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
添加兩個Countif功能也將起作用。在這種情況下,加號符號像或操作員一樣工作:
=IF(COUNTIF(A3, "*aa*") COUNTIF(A3, "*bb*"), "Yes", "")
如下面的屏幕截圖所示,您可以將它們輸入公式中的通配符,而是將其輸入單獨(dú)的單元格(例如D2和F2)。請注意,這些單元格的參考已鎖定為$符號,以便該公式將正確複製到以下單元格:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
上面的公式在兩場比賽中效果很好,但是如果您要搜索3個以上的比賽,它們將變得太長。在這種情況下,它有理由以不同的方式處理任務(wù):
以數(shù)組常數(shù)向搜索功能提供多個子字符串,對返回的數(shù)字進(jìn)行計(jì)數(shù),並檢查結(jié)果是否大於零(這意味著發(fā)現(xiàn)至少一個子字符串):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
這樣,您將通過更緊湊的公式獲得完全相同的結(jié)果:
excel if if and formula與通配符
當(dāng)您要檢查單元格是否包含兩個或更多不同的子字符串時,最簡單的方法是將Countifs功能與通配符一起進(jìn)行邏輯測試。
假設(shè)您想在包含“ B”和“ 2”的A列中找到單元格。要完成它,請使用“*b*”和“*2*”作為Countifs的標(biāo)準(zhǔn),並且在標(biāo)準(zhǔn)範(fàn)圍內(nèi)使用A2:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
另一種方法是將IF和公式與ISNUMBER搜索一起使用:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
儘管我們在此公式中不包含任何通配符字符,但它確實(shí)可以像在同一單元格中搜索兩個通配符(“*b*”和“*2*”)的工作。
當(dāng)然,在我們的情況下,沒有什麼可以阻止您輸入預(yù)定義的單元格,D2和F2的搜索值,並提供對公式的單元格引用:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
如果您希望盡可能使用更緊湊的公式,那麼您可能會更好地喜歡數(shù)組常數(shù)方法。 IF計(jì)數(shù)搜索公式非常類似於上一個示例,但是由於這段時間必須出現(xiàn)在A2中,因此我們檢查計(jì)數(shù)是否等於2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
這些是在Excel中使用通配符的主要方法。如果您知道其他解決方案,那麼如果您在評論中分享您的經(jīng)驗(yàn),其他用戶一定會很感激。我感謝您閱讀,並希望下週在我們的博客上見到您!
練習(xí)工作簿下載
如果通配符公式示例(.xlsx文件)脫穎而出
以上是excel如果部分文本匹配(通配符)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)