Satura rādītājs
Mēģināt izveidot IF paziņojumu ar aizstājējzīmju tekstu, bet tas katru reizi neizdodas? Problēma nav jūsu formulā, bet gan pašā funkcijā - Excel IF neatbalsta aizstājējzīmju rakstzīmes. Tomēr ir veids, kā panākt, lai tas darbotos daļējas teksta atbilstības gadījumā, un šajā pamācībā uzzināsiet, kā to izdarīt.
Ja vēlaties veikt daļēju vai izplūdušu saskaņošanu programmā Excel, acīmredzamākais risinājums ir izmantot aizstājējzīmes. Bet ko darīt, ja konkrētā funkcija, kas jums jāizmanto, neatbalsta aizstājējzīmju rakstzīmes? Diemžēl Excel IF ir viena no šādām funkcijām. Tas ir īpaši neapmierinoši, ņemot vērā, ka citas "nosacītās" funkcijas, piemēram, COUNTIF, SUMIF un AVERAGEIFS, darbojas ar aizstājējzīmēm pilnīgi labi.
Par laimi, tas nav šķērslis, kas var apturēt radošu Excel lietotāju :) Kombinējot IF ar citām funkcijām, varat piespiest to novērtēt daļēju atbilstību un iegūt jauku alternatīvu Excel IF aizstājējfrekvences formulai.
Kāpēc Excel IF funkcija ar aizstājējzīmi nedarbojas
Pieņemsim, ka turpmāk dotajā tabulas paraugā vēlaties pārbaudīt, vai ID pirmajā slejā ir burts "A". Ja atrasts - B slejā parādīt "Jā", ja nav - parādīt "Nē".
Šķiet, ka loģiskajā testā iekļaut aizstājējzīmju tekstu būtu vienkāršs risinājums:
=IF(A2="*a*", "Jā", "Nē")
Diemžēl tas nedarbojas. Formula atgriež "Nē" visām šūnām, pat tām, kurās ir "A":
Kāpēc aizstājējzīmju IF paziņojums neizdodas? Pēc visa spriežot, Excel neatpazīst aizstājējzīmes, kas tiek izmantotas kopā ar vienādības zīmi vai citiem loģiskajiem operatoriem. Rūpīgāk aplūkojot funkciju sarakstu, kas atbalsta aizstājējzīmes, pamanīsiet, ka to sintakse paredz, ka aizstājējzīmes teksts parādās tieši argumentā, piemēram, šādā:
=COUNTIF(A2:A10, "*a*")
Excel IF satur daļēju tekstu
Tagad, kad zināt iemeslu, kāpēc aizstājējzīmju IF formula neizdodas, mēģināsim noskaidrot, kā panākt, lai tā darbojas. Šim nolūkam mēs vienkārši iestrādāsim funkciju, kas pieņem aizstājējzīmes, IF loģiskajā testā, proti, funkciju COUNTIF:
IF(COUNTIF( šūna , "* teksts *"), value_if_true, value_if_false)Izmantojot šo pieeju, IF nav problēmu ar aizstājējzīmju izpratni un nevainojami identificē šūnas, kurās ir "A" vai "a" (jo COUNTIF nav lielo un mazo burtu sensitivitātes):
=IF(COUNTIF(A2, "*a*"), "Jā", "Nē")
Šī formula tiek ievietota B2 vai jebkurā citā 2. rindas šūnā, un pēc tam to var vilkt uz leju uz tik daudzām šūnām, cik nepieciešams:
Šo risinājumu var izmantot arī, lai atrastu noteikta parauga virknes Ja pieņem, ka derīgi ir tikai tie ID, kas sastāv no 2 divu zīmju grupām, kas atdalītas ar defisi, to identificēšanai var izmantot "??-???" aizstājējzīmju virkni:
=IF(COUNTIF(A2, "??-???"), "Derīgs", "")
Kā šī formula darbojas:
Loģiskajam IF testam mēs izmantojam funkciju COUNTIF, kas saskaita to šūnu skaitu, kuras atbilst norādītajai aizstājējzīmju virknei. Tā kā kritēriju diapazons ir viena šūna (A2), rezultāts vienmēr ir 1 (atbilstība ir atrasta) vai 0 (atbilstība nav atrasta). Ņemot vērā, ka 1 atbilst TRUE un 0 - FALSE, formula atgriež "Valid" (value_if_true), ja skaits ir 1, un tukšu virkni (value_if_false), jaskaits ir 0.
IF ISNUMBER MEKLĒŠANAS formula daļējiem sakritieniem
Vēl viens veids, kā piespiest Excel IF darboties daļējas teksta sakritības gadījumā, ir loģiskajā testā iekļaut funkciju FIND vai SEARCH. Atšķirība ir tāda, ka FIND ir jutīga pret lielajiem burtiem, bet SEARCH nav.
Tātad atkarībā no tā, vai mazos un lielos burtus vēlaties uzskatīt par vienādiem vai dažādiem burtiem, viena no šīm formulām būs piemērota:
Lietošana bez lielo un mazo burtu atdalīšanas daļējas atbilstības formula:
IF(ISNUMBER(SEARCH(" teksts ", šūna )), value_if_true, value_if_false)Lietošana pēc burtu un lielo un mazo burtu pazīmēm daļējas atbilstības formula:
IF(ISNUMBER(FIND(" teksts ", šūna )), value_if_true, value_if_false)Tā kā abas funkcijas ir izstrādātas, lai veiktu "šūna satur" tipa atbilstību, šajā gadījumā aizstājējzīmes nav nepieciešamas.
Piemēram, lai noteiktu ID, kas satur "A" vai "a", formula ir šāda:
=IF(ISNUMBER(SEARCH("A", A2)), "Jā", "Nē")
Lai meklētu tikai lielo burtu "A" un ignorētu burtu "a", formula ir šāda:
=IF(ISNUMBER(FIND("A", A2)), "Jā", "Nē")
Zemāk redzamajā ekrānšāņēmumā B6 var novērot rezultāta atšķirību:
Kā šī formula darbojas:
Formulas pamatā ir ISNUMBER un SEARCH (vai FIND) kombinācija:
ISNUMBER(SEARCH("A", A2))
SEARCH funkcija meklē norādīto tekstu ("A" šajā piemērā) un atgriež tā pozīciju A2 rindā. Ja teksts nav atrasts, tiek atgriezta #VALUE kļūda. Tā kā gan SEARCH, gan FIND ir paredzētas, lai veiktu "šūnā ir" tipa atbilstību, šajā gadījumā aizstājējzīmes nav nepieciešamas.
Funkcija ISNUMBER pārveido skaitli uz TRUE un jebkuru citu vērtību, ieskaitot kļūdu, uz FALSE. Loģiskā vērtība tiek tieši ievadīta IF loģiskajā testā. Mūsu gadījumā A2 satur "A", tāpēc ISNUMBER atgriež TRUE:
IF(TRUE, "Jā", "Nē")
Rezultātā IF atgriež vērtību, kas noteikta elementam value_if_true arguments ir "Jā".
Excel IF OR paziņojums ar aizstājējzīmēm
Nepieciešams identificēt šūnas, kas satur kādu no aizstājējzīmju teksta virknēm? Šajā gadījumā varat kombinēt klasisko IF OR paziņojumu ar iepriekš aprakstīto COUNTIF vai ISNUMBER Meklēšanas formulu.
Piemēram, lai A2 meklētu "aa" VAI "bb", neņemot vērā burtu lielumu un atgriežot "Jā", ja kāds no šiem burtiem ir atrasts, izmantojiet vienu no šīm formulām:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2)), "Jā", "")
vai
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Jā", "")
Darbosies arī divu COUNTIF funkciju saskaitīšana. Šajā gadījumā plus zīme darbojas kā OR operators:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Jā", "")
Tā vietā, lai formulā ierakstītu aizstājējzīmju virknes, varat tās ievadīt atsevišķās šūnās, piemēram, D2 un F2, kā parādīts tālāk redzamajā ekrānšāviņas attēlā. Lūdzu, ievērojiet, ka šīs šūnu atsauces ir bloķētas ar $ zīmi, lai formula tiktu pareizi kopēta uz tālāk redzamajām šūnām:
=IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Jā", "").
Iepriekš minētās formulas labi darbojas 2 daļēju atbilstību gadījumā, taču, ja meklējat 3 vai vairāk, tās kļūs pārāk garas. Šādā gadījumā ir pamatoti, ka uzdevumam jāpieiet citādi:
Ievadiet vairākas apakšvirknes funkcijai SEARCH masīva konstantē, saskaitiet atgrieztos skaitļus un pārbaudiet, vai rezultāts ir lielāks par nulli (kas nozīmētu, ka vismaz viena no apakšvirknēm ir atrasta):
=IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Jā", "")
Šādā veidā iegūsiet tieši tādu pašu rezultātu ar kompaktāku formulu:
Excel IF AND formula ar aizstājējzīmēm
Ja vēlaties pārbaudīt, vai šūnā ir divas vai vairākas dažādas apakšvirknes, visvienkāršākais veids ir izmantot funkciju COUNTIFS ar aizstājējzīmēm loģiskajam testam.
Pieņemsim, ka vēlaties atrast A slejas šūnas, kurās ir gan "b", gan "2". Lai to izdarītu, COUNTIFS kritērijiem izmantojiet "*b*" un "*2*", bet kritēriju diapazonam - A2:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Jā", "")
Cits veids ir izmantot formulu IF AND kopā ar ISNUMBER SEARCH:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2)), "Jā", "")
Lai gan šajā formulā neiekļaujam aizstājējzīmes, tā darbojas kā divu aizstājējzīmju virkņu ("*b*" un "*2*") meklēšana vienā šūnā.
Protams, nekas netraucē ievadīt meklēšanas vērtības iepriekš definētās šūnās, mūsu gadījumā D2 un F2, un formulā ievadīt šūnu atsauces:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2)), "Jā", "")
Ja vēlaties izmantot kompaktākas formulas, kur vien iespējams, tad jums, iespējams, labāk patiks masīva konstantas pieeja. IF COUNT SEARCH formula ir ļoti līdzīga kā iepriekšējā piemērā, bet, tā kā šoreiz abām apakšrindām jāparādās A2, mēs pārbaudām, vai skaits ir vienāds ar 2:
=IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Jā", "")
Šīs ir galvenās metodes, kā izmantot aizstājējzīmi IF paziņojumā programmā Excel. Ja jūs zināt citus risinājumus, citi lietotāji noteikti būs pateicīgi, ja komentāros dalīsieties savā pieredzē. Paldies, ka izlasījāt, un ceru, ka nākamnedēļ redzēsimies mūsu blogā!
Prakses darba burtnīca lejupielādei
Excel IF aizstājējzīmes formulas piemēri (.xlsx fails)