Tabl cynnwys
Yn ceisio adeiladu datganiad IF gyda thestun cerdyn gwyllt, ond mae'n methu bob tro? Nid yw'r broblem yn eich fformiwla ond yn y swyddogaeth ei hun - nid yw Excel IF yn cefnogi nodau gwyllt. Fodd bynnag, mae ffordd i'w gael i weithio ar gyfer paru testun rhannol, a bydd y tiwtorial hwn yn eich dysgu sut.
Pryd bynnag y byddwch am berfformio paru rhannol neu niwlog yn Excel, yr ateb mwyaf amlwg yw i ddefnyddio cardiau gwyllt. Ond beth os nad yw swyddogaeth benodol y mae angen i chi ei defnyddio yn cefnogi cymeriadau wildcards? Yn anffodus, mae Excel IF yn un o swyddogaethau o'r fath. Mae hyn yn arbennig o siomedig o ystyried bod swyddogaethau "amodol" eraill megis COUNTIF, SUMIF, ac AVERAGEIFS yn gweithio gyda chardiau gwyllt yn berffaith dda.
Yn ffodus, nid dyma'r rhwystr a all atal defnyddiwr creadigol Excel :) Trwy gyfuno IF gyda swyddogaethau eraill, gallwch ei orfodi i werthuso cyfatebiad rhannol a chael dewis arall braf i fformiwla cerdyn gwyllt Excel IF.
Yn y tabl sampl isod, gan dybio eich bod am wirio a yw'r IDau yn y golofn gyntaf yn cynnwys y llythyren "A". Os canfyddir - dangoswch "Ie" yng ngholofn B, os na - dangoswch "Na".
Mae'n ymddangos y byddai cynnwys testun nod chwilio yn y prawf rhesymegol yn ateb hawdd:
=IF(A2="*a*","Yes", "No")
<3
Ond yn anffodus nid yw'n gweithio. Mae'r fformiwla yn dychwelyd "Na" ar gyfer yr holl gelloedd, hyd yn oed y rhai sy'n cynnwys "A":
Pam maecerdyn gwyllt OS bydd datganiad yn methu? O bob ymddangosiad, nid yw Excel yn cydnabod cardiau gwyllt a ddefnyddir gydag arwydd cyfartal neu weithredwyr rhesymegol eraill. Wrth edrych yn agosach ar y rhestr o swyddogaethau sy'n cefnogi wildcards, fe sylwch fod eu cystrawen yn rhagdybio bod testun nod chwilio yn ymddangos yn uniongyrchol mewn dadl fel hyn:
=COUNTIF(A2:A10, "*a*")
Mae Excel IF yn cynnwys testun rhannol
Nawr eich bod chi'n gwybod y rheswm pam mae fformiwla wildcard OS yn methu, gadewch i ni geisio darganfod sut i'w gael i weithio. Ar gyfer hyn, byddwn yn syml yn ymgorffori swyddogaeth sy'n derbyn cardiau gwyllt ym mhrawf rhesymegol IF, sef y swyddogaeth COUNTIF:
IF(COUNTIF( cell , "* text * "), value_if_true, value_if_false)Gyda'r dull hwn, nid oes gan IF unrhyw broblem gyda deall cardiau gwyllt ac mae'n nodi'n ddi-ffael y celloedd sy'n cynnwys naill ai "A" neu "a" (gan nad yw COUNTIF yn sensitif i achosion):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
Mae'r fformiwla hon yn mynd i B2, neu unrhyw gell arall yn rhes 2, ac yna gallwch ei llusgo i lawr i gynifer o gelloedd ag sydd eu hangen:
0>Gellir defnyddio'r datrysiad hwn hefyd i leoli llinynnau patrwm penodol . Gan gymryd mai dim ond yr IDs sy'n cynnwys 2 grŵp o 2 nod wedi'u gwahanu â chysylltnod sy'n ddilys, gallwch chi ddefnyddio'r "??-??" llinyn cerdyn gwyllt i'w hadnabod:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
Sut mae'r fformiwla hon yn gweithio:
Ar gyfer y prawf rhesymegol o OS, rydym yn defnyddio'r swyddogaeth COUNTIF sy'n cyfrif nifer y celloedd sy'n cyfateb i'r nod chwilio penodedigllinyn. Gan fod yr ystod meini prawf yn un gell (A2), mae'r canlyniad bob amser yn 1 (canfyddir cyfatebiaeth) neu 0 (ni cheir hyd i gyfatebiaeth). O wybod bod 1 yn cyfateb i GWIR a 0 i ANGHYWIR, mae'r fformiwla yn dychwelyd "Dilys" (gwerth_if_true) pan mae'r cyfrif yn 1 a llinyn gwag (gwerth_if_ffug) pan mae'r cyfrif yn 0.
IF ISNUMBER Fformiwla CHWILIO ar gyfer rhannol paru
Ffordd arall o orfodi Excel IF i weithio ar gyfer paru testun rhannol yw cynnwys naill ai'r ffwythiant FIND neu CHWILIO yn y prawf rhesymegol. Y gwahaniaeth yw bod FIND yn sensitif i lythrennau ac nid yw SEARCH.
Felly, yn dibynnu a ydych am drin llythrennau bach a phriflythrennau fel yr un nodau neu nodau gwahanol, bydd un o'r fformiwlâu hyn yn bleser:<3
Fformiwla achos-ansensitif ar gyfer paru rhannol:
IF(ISNUMBER(SEARCH(" testun ", cell )), value_if_true, value_if_false )Fformiwla achos-sensitif ar gyfer cyfatebiad rhannol:
IF(ISNUMBER(FIND(" testun ", cell )), value_if_true, value_if_false )Gan fod y ddwy swyddogaeth wedi'u cynllunio i berfformio math o baru "mae cell" yn cyfateb, nid oes gwir angen cardiau chwilio yn yr achos hwn.
Er enghraifft, i ganfod IDau sy'n cynnwys "A" neu "a" , y fformiwla yw:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
I chwilio am brifddinas "A" yn unig ac anwybyddu "a", y fformiwla yw:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
Yn B6 yn y sgrinlun isod, gallwch weld y gwahaniaeth yn y canlyniad:
Sut mae'r fformiwla hon yn gweithio:
Yn y calon oy fformiwla, mae cyfuniad o ISNUMBER a CHWILIO (neu FIND):
ISNUMBER(SEARCH("A", A2))
Mae'r ffwythiant CHWILIO yn edrych am y testun penodedig ("A" yn yr enghraifft hon) ac yn dychwelyd ei safle o fewn llinyn yn A2. Os na chanfyddir y testun, dychwelir gwall #VALUE. Gan fod CHWILIO a FIND ill dau wedi'u cynllunio i berfformio math o baru "cell yn cynnwys", nid oes gwir angen cardiau chwilio yn yr achos hwn.
Mae'r ffwythiant ISNUMBER yn trosi rhif i WIR ac unrhyw werth arall gan gynnwys gwall i ANGHYWIR . Mae'r gwerth rhesymegol yn mynd yn uniongyrchol i brawf rhesymegol IF. Yn ein hachos ni, mae A2 yn cynnwys "A", felly mae ISNUMBER yn dychwelyd GWIR:
IF(TRUE, "Yes", "No")
O'r herwydd, mae IF yn dychwelyd y gwerth a osodwyd ar gyfer y ddadl value_if_true , sef "Ie".
Excel IF NEU ddatganiad gyda wildcards
Angen adnabod celloedd sy'n cynnwys un o linynnau testun cerdyn gwyllt? Yn yr achos hwn, gallwch gyfuno'r datganiad IF OR clasurol gyda'r fformiwla CHWILIO COUNTIF neu ISNUMBER a drafodwyd uchod.
Er enghraifft, i chwilio am "aa" OR "bb" yn A2 gan anwybyddu'r llythrennau bach a dychwelyd" Ie" os canfyddir y naill neu'r llall, defnyddiwch un o'r fformiwlâu hyn:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
neu
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
Bydd adio dwy swyddogaeth COUNTIF hefyd yn gweithio. Yn yr achos hwn, mae'r arwydd plws yn gweithio fel y gweithredwr OR:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
Yn lle llinynnau cerdyn gwyllt codio caled yn y fformiwla, gallwch eu mewnbynnu mewn celloedd ar wahân, dyweder D2 a F2, fel y dangosir yn y screenshot isod. Sylwch fod y rhainmae cyfeiriadau cell wedi'u cloi gyda'r arwydd $ fel bod y fformiwla yn copïo'n gywir i'r celloedd isod:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
Mae'r fformiwlâu uchod yn gweithio'n dda ar gyfer 2 gydweddiad rhannol , ond os ydych yn chwilio am 3 neu fwy, byddent yn mynd yn rhy hir. Yn yr achos hwn, mae'n rheswm i fynd i'r afael â'r dasg yn wahanol:
Cyflenwi is-linynnau lluosog i'r ffwythiant CHWILIO mewn cysonyn arae, cyfrwch y rhifau a ddychwelwyd, a gwiriwch a yw'r canlyniad yn fwy na sero (sy'n golygu bod o leiaf un o'r is-linynnau os canfyddir):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
Fel hyn, byddwch yn cael yr un canlyniad yn union gyda fformiwla fwy cryno:
Excel IF AND fformiwla gyda wildcards
Pan fyddwch am wirio a yw cell yn cynnwys dau neu fwy o is-linynnau gwahanol, y ffordd hawsaf yw defnyddio'r ffwythiant COUNTIFS gyda wildcards ar gyfer y prawf rhesymegol.<3
Gan dybio eich bod am leoli celloedd yng ngholofn A sy'n cynnwys "b" A "2". I wneud hyn, defnyddiwch "*b*" a "*2*" ar gyfer meini prawf COUNTIFS ac A2 ar gyfer yr ystod meini prawf:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
Ffordd arall yw defnyddio'r fformiwla IF AND gyda'i gilydd gyda CHWILIAD ISNUMBER:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
Er nad ydym yn cynnwys unrhyw nodau nod chwilio yn y fformiwla hon, mae'n gweithio fel chwilio am ddau linyn cerdyn gwyllt ("* b*" a "*2*" ) yn yr un gell.
Wrth gwrs, nid oes dim yn eich atal rhag mynd i mewn i'r gwerthoedd chwilio mewn celloedd rhagddiffiniedig, D2 a F2 yn ein hachos ni, a chyflenwimae'r gell yn cyfeirio at y fformiwla:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Os yw'n well gennych ddefnyddio fformiwlâu mwy cryno lle bynnag y bo modd, yna mae'n bosibl y byddwch yn hoffi'r dull cyson arae. Mae'r fformiwla IF COUNT SEARCH yn debyg iawn i'r enghraifft flaenorol, ond oherwydd y tro hwn mae'n rhaid i'r ddau is-linyn ymddangos yn A2, rydym yn gwirio a yw'r cyfrif yn hafal i 2:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
<17
Dyma'r prif ddulliau o ddefnyddio wildcard yn y datganiad IF yn Excel. Os ydych chi'n gwybod unrhyw atebion eraill, bydd defnyddwyr eraill yn sicr yn gwerthfawrogi os ydych chi'n rhannu'ch profiad mewn sylwadau. Diolch i chi am ddarllen a gobeithiaf eich gweld ar ein blog yr wythnos nesaf!
Gweithlyfr ymarfer i'w lawrlwytho
Enghreifftiau fformiwla cerdyn gwyllt Excel IF (ffeil .xlsx)