Სარჩევი
ცდილობთ IF განცხადების შექმნას wildcard ტექსტით, მაგრამ ის ყოველთვის ვერ ხერხდება? პრობლემა თქვენს ფორმულაში კი არა, თავად ფუნქციაშია - Excel IF არ უჭერს მხარს ველური სიმბოლოებს. თუმცა, არსებობს გზა, რათა ის იმუშაოს ტექსტის ნაწილობრივი შესატყვისისთვის და ეს სახელმძღვანელო გასწავლით როგორ.
როდესაც გსურთ განახორციელოთ ნაწილობრივი ან ბუნდოვანი შესატყვისი Excel-ში, ყველაზე აშკარა გამოსავალია ველური ბარათების გამოყენება. მაგრამ რა მოხდება, თუ კონკრეტული ფუნქცია, რომლის გამოყენებაც გჭირდებათ, არ უჭერს მხარს ველურ სიმბოლოებს? სამწუხაროდ, Excel IF ერთ-ერთი ასეთი ფუნქციაა. ეს განსაკუთრებით გულდასაწყვეტია იმის გათვალისწინებით, რომ სხვა „პირობითი“ ფუნქციები, როგორიცაა COUNTIF, SUMIF და AVERAGEIFS შესანიშნავად მუშაობს ველურ ბარათებთან.
საბედნიეროდ, ეს არ არის დაბრკოლება, რომელიც შეაჩერებს Excel-ის კრეატიულ მომხმარებელს :) IF-ის კომბინაციით. სხვა ფუნქციებით, შეგიძლიათ აიძულოთ იგი შეაფასოს ნაწილობრივი დამთხვევა და მიიღოთ Excel IF ფორმულის მშვენიერი ალტერნატივა.
რატომ არ მუშაობს Excel IF ფუნქცია wildcard-ით
ქვემოთ მოცემული ნიმუშის ცხრილში, დავუშვათ, რომ გსურთ შეამოწმოთ, შეიცავს თუ არა პირველი სვეტის ID-ები ასო "A". თუ ნაპოვნია - აჩვენეთ "დიახ" სვეტში B, თუ არა - აჩვენეთ "არა".
როგორც ჩანს, ლოგიკურ ტესტში ველური ტექსტის ჩართვა მარტივი გამოსავალი იქნება:
=IF(A2="*a*","Yes", "No")
მაგრამ, სამწუხაროდ, ეს არ მუშაობს. ფორმულა უბრუნებს "არა"-ს ყველა უჯრედისთვის, თუნდაც ის, ვინც შეიცავს "A"-ს:
რატომwildcard IF განცხადება ვერ ხერხდება? როგორც ჩანს, Excel არ ცნობს ტოლობის ნიშნით ან სხვა ლოგიკური ოპერატორებით გამოყენებულ ველურ ბარათებს. ველური ბარათების მხარდამჭერი ფუნქციების სიას რომ დააკვირდებით, შეამჩნევთ, რომ მათი სინტაქსი ვარაუდობს, რომ ველური ტექსტი პირდაპირ გამოჩნდება არგუმენტში, როგორიცაა:
=COUNTIF(A2:A10, "*a*")
Excel IF შეიცავს ნაწილობრივ ტექსტს
ახლა, როცა იცით მიზეზი, თუ რატომ ვერ ხერხდება wildcard IF ფორმულა, შევეცადოთ გაერკვნენ, თუ როგორ უნდა ამოქმედდეს იგი. ამისათვის ჩვენ უბრალოდ ჩავრთავთ ფუნქციას, რომელიც იღებს ბუნებრივ ბარათებს IF-ის ლოგიკურ ტესტში, კერძოდ, COUNTIF ფუნქცია:
IF(COUNTIF( cell, "* ტექსტი* "), value_if_true, value_if_false)ამ მიდგომით, IF-ს არ აქვს პრობლემა ველური ბარათების გაგებასთან დაკავშირებით და უნაკლოდ ამოიცნობს უჯრედებს, რომლებიც შეიცავს ან "A"-ს ან "a"-ს (რადგან COUNTIF არ არის რეგისტრის მგრძნობელობა):
=IF(COUNTIF(A2, "*a*"),"Yes", "No")
ეს ფორმულა გადადის B2-ზე, ან მე-2 რიგის ნებისმიერ სხვა უჯრედზე, შემდეგ კი შეგიძლიათ გადაიტანოთ ის იმდენ უჯრედამდე, რამდენიც საჭიროა:
ეს გამოსავალი ასევე შეიძლება გამოყენებულ იქნას კონკრეტული ნიმუშის სტრიქონების მოსაძებნად . თუ ვივარაუდებთ, რომ მხოლოდ ID-ები, რომლებიც შედგება 2 სიმბოლოსგან შემდგარი 2 ჯგუფისგან, გამოყოფილია დეფისით, მოქმედებს, შეგიძლიათ გამოიყენოთ "??-??" სიმბოლოს სტრიქონი მათ იდენტიფიცირებისთვის:
=IF(COUNTIF(A2, "??-??"), "Valid", "")
როგორ მუშაობს ეს ფორმულა:
ლოგიკური ტესტისთვის თუ, ჩვენ ვიყენებთ COUNTIF ფუნქციას, რომელიც ითვლის უჯრედების რაოდენობას, რომლებიც შეესაბამება მითითებულ ველურ ბარათსსიმებიანი. ვინაიდან კრიტერიუმების დიაპაზონი არის ერთი უჯრედი (A2), შედეგი ყოველთვის არის 1 (დამთხვევა ნაპოვნია) ან 0 (შემთხვევა არ არის ნაპოვნი). იმის გათვალისწინებით, რომ 1 უდრის TRUE-ს და 0-ს FALSE-ს, ფორმულა აბრუნებს "Valid" (მნიშვნელობა_if_true), როდესაც რაოდენობა არის 1 და ცარიელი სტრიქონი (მნიშვნელობა_if_false), როდესაც რაოდენობა არის 0.
IF ISNUMBER SEARCH ფორმულა ნაწილობრივისთვის. შეესაბამება
კიდევ ერთი გზა, რათა აიძულოთ Excel IF იმუშაოს ნაწილობრივი ტექსტის შესატყვისად, არის ლოგიკურ ტესტში FIND ან SEARCH ფუნქციის ჩართვა. განსხვავება ისაა, რომ FIND არის რეგისტრის სენსიტიური, ხოლო SEARCH არა.
ასე რომ, იმისდა მიხედვით, გინდათ თუ არა პატარა და დიდი ასოები ერთსა და იმავე ან განსხვავებულ სიმბოლოებად მიიჩნიოთ, ამ ფორმულებიდან ერთ-ერთი იმუშავებს:
რეზერვებზე მგრძნობიარე ფორმულა ნაწილობრივი შესატყვისისთვის:
IF(ISNUMBER(SEARCH(" ტექსტი", უჯრედი)), value_if_true, value_if_false )რეზერვებზე მგრძნობიარე ფორმულა ნაწილობრივი შესატყვისისთვის:
IF(ISNUMBER(FIND(" ტექსტი", უჯრედი)), value_if_true, value_if_false )რადგან ორივე ფუნქცია შექმნილია "უჯრედის შემცველი" ტიპის შესატყვისად, ამ შემთხვევაში ველური ბარათები ნამდვილად არ არის საჭირო.
მაგალითად, "A" ან "a" შემცველი ID-ების გამოსავლენად. , ფორმულა არის:
=IF(ISNUMBER(SEARCH("A", A2)), "Yes", "No")
იმისთვის რომ მოძებნოთ მხოლოდ დიდი "A" და უგულებელყოთ "a", ფორმულა არის:
=IF(ISNUMBER(FIND("A", A2)), "Yes", "No")
ქვემოთ მოცემულ ეკრანის სურათზე B6-ში შეგიძლიათ დააკვირდეთ შედეგში განსხვავებას:
როგორ მუშაობს ეს ფორმულა:
გულიფორმულაში არის ISNUMBER და SEARCH (ან FIND) კომბინაცია:
ISNUMBER(SEARCH("A", A2))
SEARCH ფუნქცია ეძებს მითითებულ ტექსტს ("A" ამ მაგალითში) და აბრუნებს მის პოზიციას შიგნით სტრიქონი A2-ში. თუ ტექსტი ვერ მოიძებნა, ბრუნდება #VALUE შეცდომა. იმის გამო, რომ ორივე SEARCH და FIND შემუშავებულია შეასრულოს "უჯრედი შეიცავს" ტიპის შესატყვისი, ამ შემთხვევაში ველური ბარათები ნამდვილად არ არის საჭირო.
ISNUMBER ფუნქცია გარდაქმნის რიცხვს TRUE-ად და ნებისმიერ სხვა მნიშვნელობას, შეცდომის ჩათვლით FALSE-ად. . ლოგიკური მნიშვნელობა პირდაპირ მიდის IF-ის ლოგიკურ ტესტზე. ჩვენს შემთხვევაში, A2 შეიცავს "A", ამიტომ ISNUMBER აბრუნებს TRUE-ს:
IF(TRUE, "Yes", "No")
შედეგად, IF აბრუნებს value_if_true არგუმენტისთვის დადგენილ მნიშვნელობას, რომელიც არის "დიახ".
Excel IF OR განცხადება wildcards-ით
გჭირდებათ უჯრედების იდენტიფიცირება, რომლებიც შეიცავს ერთ-ერთ სიმბოლოს ტექსტურ სტრიქონს? ამ შემთხვევაში, შეგიძლიათ დააკავშიროთ კლასიკური IF OR ფორმულა ზემოთ განხილულ COUNTIF ან ISNUMBER SEARCH ფორმულასთან.
მაგალითად, A2-ში "aa" ან "bb"-ის მოსაძებნად ასოს რეგისტრის იგნორირება და დაბრუნება " დიახ" თუ რომელიმე მათგანი ნაპოვნია, გამოიყენეთ ერთ-ერთი შემდეგი ფორმულა:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Yes", "")
ან
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Yes", "")
ორი COUNTIF ფუნქციის დამატება ასევე იმუშავებს. ამ შემთხვევაში, პლუს ნიშანი მუშაობს OR ოპერატორის მსგავსად:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Yes", "")
ფორმულაში მყარი კოდირების სტრიქონების ნაცვლად, შეგიძლიათ შეიყვანოთ ისინი ცალკეულ უჯრედებში, ვთქვათ D2 და F2, როგორც ნაჩვენებია. ქვემოთ მოცემულ ეკრანის სურათში. გთხოვთ გაითვალისწინოთ, რომ ესუჯრედების მითითებები იკეტება $ ნიშნით ისე, რომ ფორმულა სწორად დაკოპირდეს ქვემოთ მოცემულ უჯრედებში:
=IF(OR(COUNTIF(A2, "*"&$D$2&"*"), COUNTIF(A2, "*"&$F$2&"*")), "Yes", "")
ზემოხსენებული ფორმულები კარგად მუშაობს 2 ნაწილობრივ შესატყვისად , მაგრამ თუ თქვენ ეძებთ 3 ან მეტს, ისინი ძალიან გრძელი გახდება. ამ შემთხვევაში, საფუძვლიანია დავალებას სხვანაირად მივუდგეთ:
მიიტანეთ მრავალი ქვესტრიქონი SEARCH ფუნქციისთვის მასივის მუდმივში, დათვალეთ დაბრუნებული რიცხვები და შეამოწმეთ, არის თუ არა შედეგი ნულზე მეტი (რაც ნიშნავს რომ ერთ-ერთი ქვესტრიქონი მაინც მოიძებნება):
=IF(COUNT(SEARCH({"aa","bb"}, A2))>0, "Yes", "")
ამ გზით, თქვენ მიიღებთ ზუსტად იგივე შედეგს უფრო კომპაქტური ფორმულით:
Excel IF AND ფორმულა wildcards-ით
როდესაც გსურთ შეამოწმოთ, შეიცავს თუ არა უჯრედი ორ ან მეტ განსხვავებულ ქვესტრიქონს, უმარტივესი გზაა გამოიყენოთ COUNTIFS ფუნქცია wildcards-ით ლოგიკური ტესტისთვის.
ვთქვათ, რომ გსურთ იპოვოთ უჯრედები A სვეტში, რომლებიც შეიცავს ორივე "b" და "2". ამის შესასრულებლად გამოიყენეთ "*b*" და "*2*" COUNTIFS-ის კრიტერიუმებისთვის და A2 კრიტერიუმების დიაპაზონისთვის:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Yes", "")
სხვა გზაა IF და ფორმულის ერთად გამოყენება. ISNUMBER SEARCH-ით:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Yes", "")
მიუხედავად იმისა, რომ ამ ფორმულაში ჩვენ არ ვიღებთ ველური ნიშნების სიმბოლოებს, ის მუშაობს ისევე, როგორც ორი სიმბოლოს სტრიქონის ძიება ("*b*" და "*2*" ) იმავე უჯრედში.
რა თქმა უნდა, არაფერი გიშლით ხელს, შეიყვანოთ საძიებო მნიშვნელობები წინასწარ განსაზღვრულ უჯრედებში, ჩვენს შემთხვევაში D2 და F2 და მიაწოდოთუჯრედების მითითებები ფორმულაზე:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
თუ თქვენ გირჩევნიათ უფრო კომპაქტური ფორმულების გამოყენება, სადაც ეს შესაძლებელია, მაშინ შეიძლება უკეთესი მოგეწონოთ მასივის მუდმივი მიდგომა. IF COUNT SEARCH ფორმულა ძალიან ჰგავს წინა მაგალითს, მაგრამ რადგან ამჯერად ორივე ქვესტრიქონი უნდა გამოჩნდეს A2-ში, ვამოწმებთ არის თუ არა რაოდენობა 2-ის ტოლი:
=IF(COUNT(SEARCH({"b","2"}, A2))=2, "Yes", "")
ეს არის Excel-ში IF განცხადებაში wildcard-ის გამოყენების ძირითადი მეთოდები. თუ თქვენ იცით რაიმე სხვა გადაწყვეტილებები, სხვა მომხმარებლები ნამდვილად დააფასებენ, თუ თქვენს გამოცდილებას კომენტარებში გაზიარებთ. მადლობას გიხდით, რომ წაიკითხეთ და იმედი მაქვს, რომ მომავალ კვირას გნახავთ ჩვენს ბლოგზე!
სავარჯიშო სამუშაო წიგნი ჩამოსატვირთად
Excel IF-ის სიმბოლოების ფორმულის მაგალითები (ფაილი .xlsx)