Cuprins
Nu vrei să folosești Excel VBA și vrei să faci un Bucla FOR în Excel folosind Formula? În acest articol, v-am arătat cum puteți face Bucla FOR folosind formule.
Dacă știți cum să codificați cu Excel VBA , ești binecuvântat 🙂 Dar, dacă nu ai scris niciodată cod în VBA sau doriți să vă păstrați registrul de lucru Excel fără Excel VBA cod, atunci de cele mai multe ori trebuie să gândești în afara cutiei pentru a crea un simplu bucla .
Descărcați fișierul de lucru
Descărcați fișierul de lucru de la link-ul de mai jos:
Efectuați bucla folosind formule.xlsx3 Exemple pentru a face FOR Loop în Excel folosind Formula
Aici, voi demonstra 3 exemple pentru a face Bucla FOR în Excel folosind o formulă. Să vedem exemplele detaliate.
1. Aplicarea funcțiilor combinate pentru a face bucla FOR în Excel
Acum, permiteți-mi să vă spun care este contextul care mă încurajează să scriu acest exemplu.
Sunt autorul unor cursuri pe Udemy. Unul dintre cursuri este despre formatarea condițională în Excel. Titlul cursului este: Învățați formatarea condiționată Excel cu 7 probleme practice. [ pentru a obține acces gratuit la acest curs, faceți clic aici ].
În forumul de discuții al cursului, un student mi-a pus o întrebare ca mai jos [captură de ecran].
Întrebare pusă de un student în Udemy.
Citiți cu atenție întrebarea de mai sus și încercați să o rezolvați...
Pași pentru rezolvarea problemei de mai sus:
Aici, voi folosi OR , OFFSET , MAX , MIN , și ROW funcții ca Excel Formula pentru a crea o Bucla FOR .
- În primul rând, sarcina ta este să deschizi un nou registru de lucru și să introduci valorile de mai sus, una câte una, în foaia de calcul [începe de la celula C5 ].
- În al doilea rând, selectați întregul interval [din celula C5:C34 ].
- În al treilea rând, din Acasă panglică>> faceți clic pe butonul Formatarea condiționată comandă.
- În cele din urmă, selectați Regula nouă din meniul derulant.
În acest moment, Regulă nouă de formatare apare caseta de dialog.
- Acum, în Selectați un tip de regulă fereastră>> selectați Utilizați o formulă pentru a determina ce celule trebuie formatate opțiune.
- Apoi, în Formatați valorile în cazul în care această formulă este adevărată introduceți această formulă:
=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)
- Acum, selectați tipul de format corespunzător, făcând clic pe butonul Format... din caseta de dialog.
În acest moment, apare o casetă de dialog numită Formatarea celulelor va apărea.
- Acum, de la Umpleți opțiune>> trebuie să alegeți oricare dintre culori. Aici, am selectat culoarea Albastru deschis De asemenea, se poate observa că eșantion instantaneu. În acest caz, încercați să alegeți orice lumină Deoarece culoarea închisă poate ascunde datele introduse. În acest caz, este posibil să fie necesar să modificați culoarea Culoarea fontului .
- Apoi, trebuie să apăsați OK pentru a aplica formațiunea.
- După aceea, trebuie să apăsați OK pe Regulă nouă de formatare Aici, puteți vedea exemplul instantaneu în caseta de dialog. Previzualizare cutie.
În cele din urmă, veți obține numerele formatate.
Permiteți-mi să vă arăt algoritmul de rezolvare a problemei de mai sus:
- Aici, pentru a vă face să înțelegeți mai ușor algoritmul, voi explica totul cu două celule de referință: celule C11 și C17 . în celule C11 și C17 , valorile sunt 10 și 20 respectiv (imaginea de mai sus). Dacă sunteți obișnuiți cu formulele Excel, atunci puteți mirosi OFFSET funcție, ca OFFSET funcționează cu puncte de referință.
- Acum, imaginați-vă că iau valorile din intervalele de celule C8:C11 & C11:C14 , și C14:C17 & C17: C20 una lângă alta [imaginea de mai jos]. Celulele de referință sunt C11 și C17 și iau un total de 7 Veți obține o imagine imaginară ca cea de mai jos. Din prima parte, puteți găsi un model din imagine. C9-C12=3 , C10-C13=3 Dar pentru a doua parte nu există un astfel de model.
- Așadar, să construim algoritmul ținând cont de modelul de mai sus. Înainte de a construi formula comună, voi arăta care vor fi formulele pentru celulele C11 și C17 și apoi va modifica formula pentru a o face comună pentru toți. Pentru un punct de referință (cum ar fi C11 sau C17 ), voi lua un total de 7 celule din jurul acestuia (inclusiv punctul de referință) și le plasez una lângă alta în formula de creare a unor matrici. Apoi voi afla diferența dintre matrici dacă una dintre diferențe este egală cu 3 că celula de referință va fi ADEVĂRAT valoroase.
- Aici, pot face acest lucru cu ușurință folosind OFFSET funcția de OFFSET Funcția returnează o matrice. Spune pentru referința celulei C11 , pot să scriu formula în felul următor: =OR(OFFSET(C11, 0, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 0, 4, 1)=3) Ce va returna această formulă? Prima funcție de compensare a formulei va returna matrice: {10; 11; 12; 15} , a doua funcție offset va returna array-ul {5; 8; 9; 10} Și știi... {10; 11; 12; 15} - {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} Când această matrice este testată logic cu =3 atunci Excel face calculele interne în felul următor: {5=3; 3=3; 3=3; 3=3; 5=3} = {False; True; True; True; False} . atunci când OR se aplică la această matrice: OR({False; True; False; False; True} , veți obține ADEVĂRAT . Deci, celulă C11 primește valori adevărate ca fiind returnate.
- Deci, cred că ați înțeles întregul concept al modului în care va funcționa acest algoritm. Acum există o problemă. Această formulă poate funcționa din celula C8 , celula de mai sus C8 , există 3 Dar pentru celulele C5, C6, și C7 Această formulă nu poate funcționa. Prin urmare, formula trebuie modificată pentru aceste celule.
- Acum, pentru celule C5 la C7 , dorim ca formula să nu ia în considerare valoarea superioară 3 De exemplu, pentru celula C6 , formula noastră nu va fi ca formula pentru celula C11 : =OR(OFFSET(C11, 0, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 0, 4, 1)=3) .
- Aici, pentru celula C5 , formula va fi de genul: OR(OFFSET(C5, 3, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 0, 1, 1)=3) .
- Apoi, pentru celula C6 , formula va fi de genul: OR(OFFSET(C6, 2, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- După aceea, pentru celulă C7 , formula va fi de genul: OR(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)=3) .
- Din nou, pentru celula C8 , formula va fi de genul: OR(OFFSET(C8, 0, 0, 0, 4, 1)-OFFSET(C8,-3, 0, 0, 4, 1)=3) ; [aceasta este formula generală].
- Apoi, pentru celula C9 , formula va fi de genul: OR(OFFSET(C9, 0, 0, 0, 4, 1)-OFFSET(C9,-3, 0, 0, 4, 1)=3) ; [aceasta este formula generală].
- În cele din urmă, găsiți câteva modele în formulele de mai sus? Primul OFFSET a scăzut de la 3 la 0 ; argumentul înălțimii a crescut de la 1 la 4 . al doilea OFFSET a scăzut de la 0 la -3 și argumentul înălțimii a crescut de la 1 la 4 .
- În primul rând, primul OFFSET va fi modificat în felul următor: MAX(ROW(C$5)-ROW(C5)+3,0)
- În al doilea rând, al doilea OFFSET va fi modificat în felul următor: MAX(ROW(C$5)-ROW(C5),-3)
- În al treilea rând, Primul OFFSET va fi modificat în felul următor: MIN(RÂND(C5)-RÂND(C$5)+1,4)
- În al patrulea rând, al doilea OFFSET va fi modificat în felul următor: MIN(RÂND(C5)-RÂND(C$5)+1,4)
- Acum, încercați să înțelegeți modificarea de mai sus. Acestea nu sunt atât de greu de înțeles. Toate acestea patru modificările funcționează ca FOR LOOP de Excel VBA, dar le-am construit cu ajutorul formulelor Excel.
- Așadar, ați înțeles cum funcționează formula generală pentru celulele din C5:C34 .
Vorbeam despre bucle în foile de calcul Excel. Acesta este un exemplu perfect de buclă în Excel. Aici, de fiecare dată când formula ia 7 celule și lucrează asupra celulelor pentru a afla o anumită valoare.
2. Utilizarea funcțiilor IF & OR pentru a crea bucla FOR în Excel
În acest exemplu, să presupunem că doriți să verificați dacă celulele conțin sau nu valori. În plus, cu Excel VBA FOR Loop, puteți face acest lucru cu ușurință, dar aici, voi face acest lucru folosind o formulă Excel.
Acum, puteți utiliza la IF , iar OR funcții ca Excel Formula pentru a crea Bucla FOR În plus, puteți modifica această formulă în funcție de preferințele dumneavoastră, pașii fiind prezentați mai jos.
Pași:
- În primul rând, trebuie să selectați o celulă diferită E5 unde doriți să vedeți Stare .
- În al doilea rând, ar trebui să utilizați formula corespunzătoare din E5 celulă.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Ulterior, apăsați ENTER pentru a obține rezultatul.
Repartizarea formulei
În acest caz, se va utiliza OR funcția va returna ADEVĂRAT în cazul în care oricare din logica dată devine ADEVĂRAT .
- În primul rând, B5="" este 1. logică, care va verifica dacă celula B5 conține sau nu vreo valoare.
- În al doilea rând, C5="" este 2. logică, care va verifica dacă celula C5 conține sau nu vreo valoare.
- În al treilea rând, D5="" este 3. logic. În mod similar, care va verifica dacă celula D5 conține sau nu vreo valoare.
Acum, în IF returnează rezultatul care va îndeplini o anumită condiție.
- Atunci când OR funcția dă ADEVĂRAT atunci veți obține " Informații lipsă " ca Stare În caz contrar, veți obține " Realizat ", ca Stare .
- După aceea, trebuie să trageți Mâner de umplere pictograma la AutoFill datele corespunzătoare din restul celulelor E6:E13 . Sau puteți face dublu clic pe Mâner de umplere icoană.
În cele din urmă, veți obține toate rezultatele.
3. Angajarea funcției SUMIFS pentru a crea bucla FOR în Excel
Să presupunem că doriți să calculați factura totală pentru o anumită persoană. În acest caz, puteți utiliza funcția Bucla FOR folosind formula Excel. Aici, voi folosi funcția SUMIFS pentru a crea Bucla FOR în Excel. Pașii sunt prezentați mai jos.
Pași:
- În primul rând, trebuie să selectați o celulă diferită F7 unde doriți să vedeți Stare .
- În al doilea rând, ar trebui să utilizați formula corespunzătoare din F7 celulă.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Ulterior, apăsați ENTER pentru a obține rezultatul.
Repartizarea formulei
- Aici, $C$5:$C$13 este intervalul de date din care se calculează SUMIFS va face suma.
- Apoi, $B$5:$B$13 este intervalul de date de la care SUMIFS funcția va verifica criteriile date
- În cele din urmă, E7 este criteriul.
- Deci, în SUMIFS funcția va adăuga plățile pentru E7 valoarea celulei.
- După aceea, trebuie să trageți Mâner de umplere pentru a completa automat datele corespunzătoare în restul celulelor. F8:F10 .
În cele din urmă, veți obține rezultatul.
Concluzie
Sperăm că acest articol v-a fost de ajutor. Aici am explicat 3 exemple adecvate pentru a face Bucla FOR în Excel folosind formule. Puteți vizita site-ul nostru web Exceldemy pentru a afla mai multe conținuturi legate de Excel. Vă rugăm să lăsați comentarii, sugestii sau întrebări, dacă aveți, în secțiunea de comentarii de mai jos.