Სარჩევი
არ გსურთ გამოიყენოთ Excel VBA და გსურთ გააკეთოთ FOR Loop Excel-ში ფორმულის გამოყენებით? ამ სტატიაში მე ვაჩვენე, თუ როგორ შეგიძლიათ გააკეთოთ FOR Loop ფორმულების გამოყენებით.
თუ იცით როგორ დაწეროთ კოდი Excel-ით VBA , კურთხეული ხართ 🙂 . მაგრამ, თუ თქვენ არასოდეს დაგიწერიათ კოდი VBA -ში ან გსურთ თქვენი Excel-ის სამუშაო წიგნი Excel VBA კოდისგან თავისუფალი, მაშინ უმეტესად თქვენ უნდა იფიქროთ, რომ შექმნათ simple loop .
Download Working File
ჩამოტვირთეთ სამუშაო ფაილი ქვემოთ მოცემული ბმულიდან:
Make Loop Using Formulas. xlsx3 მაგალითი Excel-ში FOR Loop-ის შესაქმნელად ფორმულის გამოყენებით
აქ მე წარმოგიდგენთ 3 მაგალითებს Excel-ში FOR Loop -ის შესაქმნელად ფორმულა. ვნახოთ დეტალური მაგალითები.
1. კომბინირებული ფუნქციების გამოყენება Excel-ში FOR Loop-ის შესაქმნელად
ახლა მაცნობეთ ფონი, რომელიც მამხნევებს ამ მაგალითის დაწერას.
მე ვარ რამდენიმე კურსის ავტორი Udemy-ზე. ერთ-ერთი კურსი არის Excel-ის პირობითი ფორმატირება. კურსის სათაურია: ისწავლეთ Excel-ის პირობითი ფორმატირება 7 პრაქტიკული პრობლემით. [ ამ კურსზე უფასო წვდომის მისაღებად დააწკაპუნეთ აქ ].
კურსის სადისკუსიო დაფაზე , ერთმა სტუდენტმა დამისვა კითხვა, როგორც ქვემოთ [სკრინშოტის სურათი].
კითხვა დასმული სტუდენტის მიერ Udemy-ში.
ყურადღებით წაიკითხეთ ზემოხსენებული შეკითხვა და სცადეთ მისი გადაჭრა...
ეტაპები ზემოაღნიშნული პრობლემის გადასაჭრელად:
აქ, მეგამოიყენებს OR , OFFSET , MAX , MIN და ROW ფუნქციებს Excel Formula-ად, რათა შექმნას FOR Loop .
- პირველ რიგში, თქვენი ამოცანაა გახსნათ ახალი სამუშაო წიგნი და შეიყვანოთ ზემოაღნიშნული მნიშვნელობები სათითაოდ სამუშაო ფურცელში [დაიწყეთ უჯრედიდან C5 ] .
- მეორე, აირჩიეთ მთელი დიაპაზონი [უჯრედიდან C5:C34 ].
- მესამე, საწყისი ლენტიდან >> დააწკაპუნეთ პირობითი ფორმატირების ბრძანებაზე.
- და ბოლოს, აირჩიეთ ახალი წესი ვარიანტი ჩამოსაშლელიდან.
ამ დროს ჩნდება დიალოგური ფანჯარა ფორმატირების ახალი წესი .
- ახლა აირჩიეთ წესის ტიპი ფანჯარაში >> ; აირჩიეთ გამოიყენეთ ფორმულა, რათა დადგინდეს რომელი უჯრედების ფორმატირება ვარიანტი.
- შემდეგ, ველში ფორმატის მნიშვნელობები, სადაც ეს ფორმულა არის true , ჩაწერეთ ეს ფორმულა:
=OR(OFFSET(C5,MAX(ROW(C$5)-ROW(C5)+3,0),0,MIN(ROW(C5)-ROW(C$5)+1,4),1)-OFFSET(C5,MAX(ROW($C$5)-ROW(C5),-3),0,MIN(ROW(C5)-ROW(C$5)+1,4),1)=3)
- ახლა აირჩიეთ შესაბამისი ფორმატის ტიპი დიალოგურ ფანჯარაში ღილაკზე ფორმატი… დაწკაპუნებით.
ამ დროს გამოჩნდება დიალოგური ფანჯარა სახელად უჯრედების ფორმატირება .
- ახლა, შეავსეთ ოპცია >> თქვენ უნდა აირჩიოთ ნებისმიერი ფერი. აქ მე ავირჩიე ღია ლურჯი ფონი. ასევე, შეგიძლიათ მყისიერად ნახოთ ნიმუში . ამ შემთხვევაში შეეცადეთ აირჩიოთ ნებისმიერი ღია ფერი. იმის გამო, რომ მუქმა შეიძლება დამალოს შეყვანილი მონაცემები. შემდეგ შეიძლება დაგჭირდეთ შრიფტის ფერის შეცვლა .
- შემდეგ, თქვენ უნდა დააჭიროთ OK ფორმაციის გამოსაყენებლად.
- ამის შემდეგ, თქვენ უნდა დააჭიროთ OK ღილაკს ფორმატირების ახალი წესი დიალოგური ფანჯარა. აქ შეგიძლიათ მყისიერად ნახოთ ნიმუში Preview ველში.
ბოლოს, თქვენ მიიღებთ ფორმატირებულ ნომრებს.
ნება მომეცით გაჩვენოთ ალგორითმი ზემოაღნიშნული ამოცანის გადასაჭრელად:
- აქ, ალგორითმის მარტივად გასაგებად ახსენი მთელი რამ ორი საცნობარო უჯრედით: უჯრედები C11 და C17 . უჯრედებში C11 და C17 , მნიშვნელობებია 10 და 20 შესაბამისად (სურათის ზემოთ). თუ თქვენ შეჩვეული ხართ Excel-ის ფორმულებს, მაშინ იგრძნობთ OFFSET ფუნქციის სუნი, რადგან OFFSET ფუნქცია მუშაობს საცნობარო წერტილებთან.
- ახლა, წარმოიდგინეთ, რომ ვიღებ მნიშვნელობებს. უჯრედების დიაპაზონის C8:C11 & C11:C14 და C14:C17 & C17: C20 გვერდიგვერდ [სურათი ქვემოთ]. საცნობარო უჯრედები არის C11 და C17 და მე ვიღებ სულ 7 უჯრედებს საცნობარო უჯრედის გარშემო. თქვენ მიიღებთ წარმოსახვით სურათს შემდეგნაირად. პირველი ნაწილიდან შეგიძლიათ იპოვოთ ნიმუში სურათიდან. C9–C12=3 , C10-C13=3 , არის ნიმუში. მაგრამ მეორე ნაწილისთვის, ასეთი ნიმუში არ არსებობს.
- მაშ, მოდით ავაშენოთ ალგორითმი ზემოთ მოცემული ნიმუშის გათვალისწინებით. საერთო ფორმულის აგებამდე მე გაჩვენებთ რა ფორმულები იქნება ამისთვისუჯრედები C11 და C17 და შემდეგ შეცვლიან ფორმულას, რათა ის საერთო გახდეს ყველასთვის. საცნობარო წერტილისთვის (როგორიცაა C11 ან C17 ), ავიღებ სულ 7 უჯრედებს მის გარშემო (საცნობარო წერტილის ჩათვლით) და მოვათავსებ მათ გვერდით მხარე ფორმულაში, რომელიც ქმნის მასივებს. შემდეგ მე გავარკვევ მასივების განსხვავებას, თუ რომელიმე სხვაობა უდრის 3 , რომ საცნობარო უჯრედი იქნება TRUE მნიშვნელობა.
- აქ შემიძლია გააკეთეთ ეს მარტივად OFFSET ფუნქციის გამოყენებით, რადგან OFFSET ფუნქცია აბრუნებს მასივს. ვთქვათ უჯრედის მითითებისთვის C11 , მე შემიძლია დავწერო ფორმულა ასე: =OR(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . რას დააბრუნებს ეს ფორმულა? ფორმულის პირველი ოფსეტური ფუნქცია დააბრუნებს მასივს: {10; 11; 12; 15} , მეორე ოფსეტური ფუნქცია დააბრუნებს მასივს {5; 8; 9; 10} . და თქვენ იცით {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5 . როდესაც ეს მასივი ლოგიკურად შემოწმდება =3 -ით, მაშინ Excel ითვლის შინაგანად ასე: {5=3; 3=3; 3=3; 5=3} = {მცდარი; მართალია; მართალია; მცდარი . როდესაც OR ფუნქცია გამოიყენება ამ მასივზე: OR({False; True; False; True} , თქვენ მიიღებთ TRUE . ასე რომ, უჯრედი C11 იღებს ნამდვილ მნიშვნელობებს, როგორც დაბრუნებული.
- მაშ ასე, ვფიქრობ, თქვენ გაქვთ მთელი კონცეფცია, თუ როგორ იმუშავებს ეს ალგორითმი. ახლა არის პრობლემა. ეს ფორმულა შეიძლება იმუშაოსუჯრედი C8 , უჯრედის ზემოთ C8 , არის 3 უჯრედები. მაგრამ უჯრედებისთვის C5, C6, და C7 ეს ფორმულა არ მუშაობს. ასე რომ, ფორმულა უნდა შეიცვალოს ამ უჯრედებისთვის.
- ახლა უჯრედებისთვის C5 C7 , ჩვენ გვინდა, რომ ფორმულა არ გაითვალისწინოს ზედა 3 უჯრედი. მაგალითად, უჯრედისთვის C6 , ჩვენი ფორმულა არ იქნება უჯრედის C11 ფორმულის მსგავსი: =OR(OFFSET(C11, 0, 0, 4, 1)- OFFSET(C11, -3, 0, 4, 1)=3) .
- აქ, უჯრედისთვის C5 , ფორმულა იქნება ასეთი: OR(OFFSET (C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- შემდეგ, უჯრედისთვის C6 , ფორმულა იქნება ასეთი: OR(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- შემდეგ რომ უჯრედისთვის C7 , ფორმულა იქნება ასეთი: OR(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)= 3) .
- კიდევ ერთხელ, უჯრედისთვის C8 , ფორმულა იქნება ასეთი: OR(OFFSET(C8, 0, 0, 4, 1)-OFFSET( C8,-3, 0, 4, 1)=3) ; [ეს არის ზოგადი ფორმულა].
- შემდეგ, უჯრედისთვის C9 , ფორმულა იქნება ასეთი: OR(OFFSET(C9, 0, 0, 4, 1)- OFFSET(C9,-3, 0, 4, 1)=3) ; [ეს არის ზოგადი ფორმულა].
- დაბოლოს, იპოვით თუ არა ზემოხსენებული ფორმულებიდან რამდენიმე შაბლონს? პირველი OFFSET ფუნქციის რიგების არგუმენტი შემცირდა 3 -დან 0 -მდე; სიმაღლის არგუმენტი გაიზარდა 1 -დან 4 -მდე. მეორე OFFSET ფუნქციის რიგების არგუმენტი შემცირდა 0 -3 -მდე და სიმაღლის არგუმენტი გაიზარდა 1 -დან 4 -მდე.
- პირველ რიგში, პირველი OFFSET ფუნქციის რიგების არგუმენტი შეიცვლება ასე: MAX(ROW(C$5)-ROW(C5)+3,0)
- მეორე, მეორე OFFSET ფუნქციის რიგების არგუმენტი შეიცვლება ასე: MAX(ROW(C$5)-ROW(C5),-3)
- მესამე, პირველი OFFSET ფუნქციის სიმაღლის არგუმენტი შეიცვლება ასე: MIN(ROW(C5)-ROW(C$5)+1,4)
- მეოთხე, მეორე OFFSET ფუნქციის სიმაღლის არგუმენტი შეიცვლება შემდეგნაირად: MIN(ROW(C5)-ROW(C$5)+1,4)
- ახლა, შეეცადეთ გაიგოთ ზემოთ მოყვანილი მოდიფიკაცია. ეს არც ისე ძნელი გასაგებია. ყველა ეს ოთხი მოდიფიკაცია მუშაობს Excel VBA-ის FOR LOOP , მაგრამ მე ისინი ავაშენე Excel ფორმულებით.
- ასე რომ, თქვენ გესმით ზოგადი ფორმულა. მუშაობს უჯრედებისთვის C5:C34 -დან.
ასე რომ, მე ვსაუბრობდი Excel-ის ცხრილებში Looping-ზე. ასე რომ, ეს არის Excel-ში ციკლის შესანიშნავი მაგალითი. აქ, ყოველ ჯერზე, როცა ფორმულა იღებს 7 უჯრედებს და მუშაობს უჯრედებზე კონკრეტული მნიშვნელობის გასარკვევად.
2. IF & ან ფუნქციები Excel-ში FOR Loop-ის შესაქმნელად
ამ მაგალითში, დავუშვათ, რომ გსურთ შეამოწმოთ, შეიცავს თუ არა უჯრედები რაიმე მნიშვნელობას. გარდა ამისა, Excel VBA FOR Loop-ით, შეგიძლიათ ამის გაკეთება მარტივად, მაგრამ აქ მე ამას გავაკეთებ Excel ფორმულის გამოყენებით.
ახლა შეგიძლიათ გამოიყენოთ IF და OR ფუნქციონირებს როგორც Excel ფორმულა FOR Loop -ის შესაქმნელად. გარდა ამისა, თქვენ შეგიძლიათ შეცვალოთ ეს ფორმულა თქვენი უპირატესობის მიხედვით. ნაბიჯები მოცემულია ქვემოთ.
ნაბიჯები:
- პირველ რიგში, თქვენ უნდა აირჩიოთ სხვა უჯრედი E5 , სადაც გსურთ ნახოთ სტატუსი .
- მეორე, თქვენ უნდა გამოიყენოთ შესაბამისი ფორმულა E5 უჯრედში.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- შემდეგ, დააჭირეთ ENTER შედეგის მისაღებად.
Formula Breakdown
აქ, OR ფუნქცია დაბრუნდება TRUE თუ რომელიმე მოცემული ლოგიკა გახდება TRUE .
- პირველ რიგში, B5=”” არის 1st ლოგიკა, რომელიც შეამოწმებს შეიცავს თუ არა უჯრედი B5 რაიმე მნიშვნელობა თუ არა.
- მეორე, C5=”” არის მეორე ლოგიკა, რომელიც შეამოწმებს, შეიცავს თუ არა უჯრედი C5 რაიმე მნიშვნელობას ან არა.
- მესამე, D5=”” არის მე-3 ლოგიკა. ანალოგიურად, რომელიც შეამოწმებს, შეიცავს თუ არა უჯრედი D5 რაიმე მნიშვნელობას.
ახლა, IF ფუნქცია აბრუნებს შედეგს, რომელიც შეასრულებს მოცემულ პირობას. .
- როდესაც OR ფუნქცია იძლევა TRUE მაშინ თქვენ მიიღებთ „ Info Missing “ როგორც Status . წინააღმდეგ შემთხვევაში, თქვენ მიიღებთ „ შესრულებულია “, როგორც სტატუსს .
- ამის შემდეგ, თქვენ უნდა გადაათრიოთ შევსების სახელური ხატულა ავტომატური შევსება შესაბამისი მონაცემები დანარჩენშიუჯრედები E6:E13 . ან შეგიძლიათ ორჯერ დააწკაპუნოთ შევსების სახელურის ხატულაზე.
საბოლოოდ, თქვენ მიიღებთ ყველა შედეგს .
3. SUMIFS ფუნქციის გამოყენება Excel-ში FOR Loop-ის შესაქმნელად
დავუშვათ, რომ გსურთ მთლიანი ანგარიშის გაკეთება გარკვეული პირისთვის. ამ შემთხვევაში, შეგიძლიათ გამოიყენოთ FOR Loop ექსელის ფორმულის გამოყენებით. აქ მე გამოვიყენებ SUMIFS ფუნქციას , რათა შევქმნა FOR Loop ექსელში. ნაბიჯები მოცემულია ქვემოთ.
ნაბიჯები:
- პირველ რიგში, თქვენ უნდა აირჩიოთ სხვა უჯრედი F7 , სადაც გსურთ ნახოთ სტატუსი .
- მეორე, თქვენ უნდა გამოიყენოთ შესაბამისი ფორმულა F7 უჯრედში.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- შემდეგ, დააჭირეთ ENTER შედეგის მისაღებად.
ფორმულის დაშლა
- აქ, $C$5:$C$13 არის მონაცემთა დიაპაზონი, საიდანაც SUMIFS ფუნქცია შეაჯამებს.
- შემდეგ, $B$5:$B$13 არის მონაცემთა დიაპაზონი, საიდანაც SUMIFS ფუნქცია შეამოწმებს მოცემულ კრიტერიუმებს
- ბოლოს, E7 არის კრიტერიუმი.
- ასე რომ, SUMIFS ფუნქცია დაამატებს გადახდებს E7 უჯრედის მნიშვნელობისთვის.
- ამის შემდეგ, თქვენ უნდა გადაათრიოთ შევსების სახელურის ხატულა ავტომატური შევსებისას შესაბამისი მონაცემების დანარჩენ უჯრედებში F8:F10 .
ბოლოს, თქვენ მიიღებთ შედეგს.
დასკვნა
ვიმედოვნებთ, რომ თქვენეს სტატია სასარგებლო აღმოჩნდა. აქ ჩვენ განვმარტეთ 3 შესაფერისი მაგალითები Excel-ში FOR Loop ფორმულების გამოყენებით გასაკეთებლად. შეგიძლიათ ეწვიოთ ჩვენს ვებსაიტს Exceldemy მეტი Excel-თან დაკავშირებული შინაარსის გასაგებად. გთხოვთ, დაწეროთ კომენტარები, წინადადებები ან შეკითხვები, თუ გაქვთ რაიმე კომენტარების განყოფილებაში ქვემოთ.