VBA INDEX MATCH რამდენიმე კრიტერიუმზე დაყრდნობით Excel-ში (3 მეთოდი)

  • გააზიარეთ ეს
Hugh West

როცა ჩვენ გვაქვს დიდი რაოდენობით მონაცემები, ზოგჯერ რთულია მონაცემთა ნაკრებიდან რაიმე კონკრეტული მონაცემების ამოღება. Excel-ის INDEX და MATCH ფუნქციებთან ერთად შეუძლია ნებისმიერი სახის მონაცემის მოძიება, თუნდაც უზარმაზარ მონაცემთა ბაზაში. VBA დანერგვა არის ყველაზე ეფექტური, სწრაფი და უსაფრთხო მეთოდი Excel-ში ნებისმიერი ოპერაციის გასაშვებად. ამ სტატიაში ჩვენ გაჩვენებთ 3 სხვადასხვა მეთოდს, თუ როგორ უნდა შეასრულოთ INDEX MATCH მრავალ კრიტერიუმზე დაყრდნობით Excel-ში VBA მაკრო .

ჩამოტვირთვა სამუშაო წიგნი

შეგიძლიათ ჩამოტვირთოთ Excel-ის უფასო პრაქტიკული სამუშაო წიგნი აქედან.

VBA INDEX MATCH Multiple Criteria.xlsm-ზე დაფუძნებული

3 მეთოდი VBA INDEX MATCH-ით Excel-ში მრავალ კრიტერიუმზე დაყრდნობით

შემდეგ განყოფილებებში ჩვენ გაჩვენებთ, თუ როგორ უნდა შეასრულოთ INDEX MATCH დიაპაზონის მრავალ კრიტერიუმზე დაყრდნობით , კონკრეტული შერჩევისთვის და ცხრილისთვის Excel-ში VBA .

ზემოთ ჩვენ გვაქვს მონაცემთა ნაკრები, რომელსაც მოჰყვება ეს სტატია. ჩვენ გვაქვს მონაცემთა ნაკრების სტუდენტის სახელი , სტუდენტის ID, და გამოცდის ნიშნები . ჩვენ გამოვყოფთ გარკვეულ შედეგს, რომელიც ცხოვრობს ერთ სვეტში, პირობების საფუძველზე, დანარჩენი ორი სვეტიდან.

კრიტერიუმი – 1: ჩაშენება VBA INDEX MATCH-ით მრავალჯერადი (ორი) განზომილებიანი ძიება Excel-ში

განიხილეთ შემდეგი სურათი. ჩვენ შევინახეთ კონკრეტული მოსწავლის სახელი „ Edge“ უჯრედშიG4 ; და სვეტი, რომელშიც ჩვენ მოვიძიებთ შედეგს , გამოცდის ნიშნები , ინახება Cell G5 . ჩვენ მოვიძიებთ გამოცდის ნიშნები სვეტში და ვინახავთ ნიშნებს , რომელიც " Edge" მიიღო Cell G6 .

ძიების ნაბიჯები იწვევს ორგანზომილებიან მასივს INDEX და MATCH Excel-ში VBA-ით მოცემულია ქვემოთ.

ნაბიჯები:

  • დასაწყისში დააჭირეთ Alt + F11 თქვენს კლავიატურაზე ან გადადით ჩანართი დეველოპერი -> Visual Basic გასახსნელად Visual Basic Editor .

  • შემდეგ, pop-up კოდის ფანჯარაში, მენიუს ზოლში დააწკაპუნეთ ჩასმა -> მოდული .

  • შემდეგ, დააკოპირეთ შემდეგი კოდი და ჩასვით კოდში ფანჯარა.
8915

თქვენი კოდი ახლა მზად არის გასაშვებად.

  • ახლა დააჭირეთ F5 თქვენს კლავიატურა ან მენიუს ზოლიდან აირჩიეთ გაშვება -> გაუშვით Sub/UserForm . ასევე შეგიძლიათ უბრალოდ დააწკაპუნოთ პატარა Run ხატულაზე ქვემენიუ ზოლში მაკროს გასაშვებად.

კოდის შესრულების შემდეგ, შედეგის სანახავად შეხედეთ ქვემოთ მოცემულ გიფს.

შედეგად, ნიშნები , რომელიც „ Edge“ მიიღო გამოცდა, 67 , მოძიებულია Cell G7 .

VBA კოდის განმარტება

1354

სამუშაო ფურცლის ცვლადის განსაზღვრა.

6114

სამუშაო ფურცლის სახელის შენახვა. ჩვენი ფურცლის სახელია "ორი განზომილება", თქვენ უნდა მოგვაწოდოთსახელი თქვენი ცხრილის მიხედვით.

5886

კოდის ეს ნაწილი ირჩევს დიაპაზონს C5:D14 როგორც საძიებო დიაპაზონი. შემდეგ მოძებნეთ შესატყვისი, რომელიც ინახება უჯრედში G4 დიაპაზონში B5:B14 და მოძებნეთ შესატყვისი, რომელიც ინახება უჯრედში G5 დიაპაზონში C4:D4 და გადაიტანეთ შედეგი უჯრედში G6 .

წაიკითხეთ მეტი: როგორ გამოვიყენოთ INDEX MATCH მრავალი კრიტერიუმით თარიღის დიაპაზონისთვის

კრიტერიუმი – 2: გამოიყენეთ მაკრო MATCH მნიშვნელობის მოსაძებნად INDEX-ით მომხმარებლის მიერ განსაზღვრული ფუნქციით (UDF)

შეგიძლიათ ამოიღოთ შესაბამისი მნიშვნელობები მონაცემთა ნაკრებიდან მომხმარებლის მიერ განსაზღვრული ფუნქცია (UDF) . შემდეგი სურათიდან, რასაც ვაპირებთ, ჩავაბარებთ კონკრეტული სტუდენტის სტუდენტური ID და გამოცდის ნიშნებს და ფუნქცია დაგვაბრუნებს Name ამ კონკრეტული სტუდენტის.

მოდით ვნახოთ, როგორ მივაღწიოთ ამას სტუდენტის სახელი „ფინი“ VBA .

ნაბიჯები:

  • როგორც ადრე იყო ნაჩვენები, გახსენით Visual Basic Editor Developer ჩანართიდან და ჩასვით მოდული კოდის ფანჯარაში.
  • შემდეგ, კოდის ფანჯარაში, დააკოპირეთ შემდეგი კოდი და ჩასვით ის.
6862

  • არ გაუშვათ ეს კოდი, შეინახეთ ის.
  • ახლა, დაბრუნდით სამუშაო ფურცელზე საინტერესოდ. აირჩიეთ ნებისმიერი უჯრედი , რომლის შენახვაც გსურთ. ჩვენს შემთხვევაში, ეს არის Cell F5 .
  • ამ უჯრედში, ჩაწერეთ UDF თქვენახლახან შექმენით კოდში ( MatchByIndex ) და გაატარეთ კონკრეტული სტუდენტის ID და გამოცდის ნიშნები ფუნქციის ფრჩხილებში.

როგორც ჩვენ ვცდილობთ ამოვიღოთ სახელი „ ფინი“ მისი ID (105) და ნიშნებიდან (84) , ასე რომ, ჩვენი შემთხვევისთვის ფორმულა ხდება,

=MatchByIndex(105,84)

  • შემდეგ დააჭირეთ Enter .

შეხედეთ შემდეგ სურათს.

Cell F5 , ჩვენ წარმატებით მოვიძიეთ სახელი „ Finn“ უბრალოდ გადასვით მისი ID და Marks ფუნქციის შიგნით, რომელიც ჩვენ შევქმენით VBA კოდში.

<. 1>VBA კოდის განმარტება

2073

ახალი ფუნქციის შექმნა და მასში ცვლადების გადაცემა. თქვენ შეგიძლიათ განსაზღვროთ ნებისმიერი სახელი ფუნქციისთვის.

4233

ჩვენი მწკრივი იწყება რიგის 4-დან. თქვენ უნდა მიუთითოთ რიგის ნომერი, საიდანაც იწყება თქვენი მონაცემთა ნაკრები.

2350

ცვლადების განსაზღვრა.

7061

პირველ რიგში, განსაზღვრეთ სამუშაო ფურცელი, რომელთანაც უნდა იმუშაოთ. ჩვენი ფურცლის სახელია "UDF", თქვენ უნდა მიუთითოთ სახელი თქვენი ცხრილის მიხედვით. შემდეგ დაიწყეთ ძიება დიაპაზონში C:D პირველი რიგიდან, რომელიც ჩვენ განვსაზღვრეთ ბოლო სტრიქონამდე.

7572

დაიწყეთ გამეორება პირველი მწკრივიდან ბოლო მწკრივამდე. თუ პირველი მნიშვნელობა, რომელსაც ჩავატარებთ ფუნქციის შიგნით, მოხვდება C სვეტში და თუ მეორე მნიშვნელობა, რომელსაც ჩავატარებთ ფუნქციის შიგნით, მოხვდება D სვეტში, მაშინ ის დაბრუნდება. Theემთხვევა B სვეტიდან. წინააღმდეგ შემთხვევაში, გამოდით ფუნქციიდან, დაასრულეთ ყველა განცხადება და გადადით შემდეგ სტრიქონზე.

2498

თუ წინა პირობა არ შესრულდება შესრულებისას, მაშინ დაბრუნდება შეტყობინება „მონაცემები ვერ მოიძებნა“ და კოდი დატოვებს ფუნქციას.

დაწვრილებით: INDEX-MATCH მრავალი კრიტერიუმით ნაწილობრივი ტექსტისთვის Excel-ში (2 გზა)

კრიტერიუმები – 3: დანერგეთ VBA, რათა დააბრუნოთ MATCH მნიშვნელობა ცხრილიდან მრავალი მონაცემით Excel-ში

ამ განყოფილებაში ჩვენ ვისწავლით, თუ როგორ დავაბრუნოთ შესატყვისი მნიშვნელობა ცხრილის ინდექსებით MsgBox-ში VBA Excel-ში.

მოდით ვნახოთ, როგორ ამოიღოთ ნიშნები ცხრილიდან ნაჩვენები გარკვეული მოსწავლის მონაცემთა ნაკრები ( T შესაძლებლობის სახელი: TableMatch ) კოდის შიგნით Name და ID . ჩვენს შემთხვევაში, Name და ID იქნება Finn და 105 შესაბამისად.

ნაბიჯები :

  • პირველ რიგში, გახსენით Visual Basic Editor Developer ჩანართიდან და Insert a Module კოდის ფანჯარაში.
  • შემდეგ, დააკოპირეთ შემდეგი კოდი და ჩასვით კოდის ფანჯარაში.
1486

თქვენი კოდი ახლა მზად არის გასაშვებად.

  • მოგვიანებით, გაუშვით ეს კოდი და შეხედეთ შემდეგ სურათს, რომ ნახოთ რა მოხდა შედეგად.

როგორც ზემოთ მოყვანილი სურათიდან ხედავთ, არის Microsoft Excel pop-ზემოთ შეტყობინებების ყუთი, სადაც ნაჩვენებია ნიშნები: 84 ID: 105 და Name: Finn , რომლებიც ჩვენ მოგვაწოდეთ კოდის შიგნით.

VBA კოდის ახსნა

2802

ცვლადების განსაზღვრა.

8998

ცვლადებში ფურცლის და ცხრილის სახელის დაყენება.

4943

შენახვა საძიებელი მნიშვნელობები და საძიებელი სვეტები.

3475

კოდის ეს ნაწილი სკანირებს ხელმოწერის დასაწყისიდან ბოლომდე და თუ აღმოაჩენს განსაზღვრული ID-ისა და სახელის შესაბამისობას საძიებო სვეტებში, მაშინ შეინახეთ შედეგი და დახურეთ ყველა განცხადება. ასევე, გამოდით გამეორებიდან და გადადით კოდის შემდეგ ნაწილზე.

6279

შედეგს აგდებს MsgBox-ში.

წაიკითხეთ მეტი: მოძებნა და დაბრუნება Excel-ში ერთ უჯრედში გაერთიანებული მრავალი მნიშვნელობა

დასკვნა

დასკვნის სახით, ამ სტატიაში გაჩვენეთ 3 განსხვავებული მეთოდი, თუ როგორ უნდა შეასრულოთ INDEX MATCH-ის საფუძველზე მრავალ კრიტერიუმზე Excel-ში VBA მაკრო . ვიმედოვნებ, რომ ეს სტატია თქვენთვის ძალიან სასარგებლო იყო. მოგერიდებათ დაუსვათ ნებისმიერი შეკითხვა თემასთან დაკავშირებით.

ჰიუ ვესტი არის Excel-ის ძალიან გამოცდილი ტრენერი და ანალიტიკოსი, რომელსაც აქვს 10 წელზე მეტი გამოცდილება ინდუსტრიაში. მას აქვს ბაკალავრის ხარისხი ბუღალტერიასა და ფინანსებში და მაგისტრის ხარისხი ბიზნესის ადმინისტრირებაში. ჰიუს აქვს სწავლების გატაცება და შეიმუშავა სწავლების უნიკალური მიდგომა, რომელიც ადვილად გასაგები და გასაგებია. მისი ექსპერტი Excel-ის ცოდნა დაეხმარა ათასობით სტუდენტს და პროფესიონალს მთელს მსოფლიოში, გაეუმჯობესებინათ თავიანთი უნარები და გამოირჩეოდნენ თავიანთ კარიერაში. თავისი ბლოგის საშუალებით, ჰიუ უზიარებს თავის ცოდნას მსოფლიოს, სთავაზობს უფასო Excel გაკვეთილებს და ონლაინ ტრენინგებს, რათა დაეხმაროს ინდივიდებსა და ბიზნესს თავიანთი პოტენციალის სრულად მიღწევაში.