Sadržaj
Zar ne želite koristiti Excel VBA i želite napraviti FOR Loop u Excelu koristeći formulu? U ovom članku sam pokazao kako možete napraviti FOR Loop koristeći formule.
Ako znate kodirati s Excelom VBA , blagoslovljeni ste 🙂 . Ali, ako nikada niste napisali kod u VBA ili želite da vaša Excel radna sveska ne sadrži Excel VBA kod, onda većinu vremena morate razmišljati izvan okvira kako biste kreirali simple petlja .
Preuzmite radni fajl
Preuzmite radni fajl sa donje veze:
Napravite petlju koristeći formule. xlsx3 primjera za pravljenje petlje FOR u Excelu koristeći formulu
Ovdje ću demonstrirati 3 primjere da napravite FOR petlju u Excelu koristeći formula. Pogledajmo detaljne primjere.
1. Primjena kombiniranih funkcija za stvaranje FOR petlje u Excelu
Sada mi recite pozadinu koja me ohrabruje da napišem ovaj primjer.
Ja sam autor nekih kurseva o Udemyju. Jedan od kurseva je o Excel uslovnom formatiranju. Naziv kursa je: Naučite Excel uslovno formatiranje sa 7 praktičnih problema. [ da biste dobili besplatan pristup ovom kursu, kliknite ovdje ].
Na diskusijskoj tabli kursa , student mi je postavio pitanje kao ispod [slika ekrana].
Pitanje koje je postavio student u Udemy.
Pažljivo pročitajte gornje pitanje i pokušajte ga riješiti…
Koraci za rješavanje gornjeg problema:
Evo, jaće koristiti funkcije OR , OFFSET , MAX , MIN i ROW kao Excel formulu za kreiranje FOR Loop .
- Prvo, vaš posao je da otvorite novu radnu knjigu i unesete gore navedene vrijednosti jednu po jednu u radni list [počnite od ćelije C5 ] .
- Drugo, odaberite cijeli raspon [iz ćelije C5:C34 ].
- Treće, sa trake Početna >> kliknite na naredbu Uvjetno oblikovanje .
- Konačno, odaberite opciju Novo pravilo iz padajućeg izbornika.
U ovom trenutku se pojavljuje dijaloški okvir Novo pravilo formatiranja .
- Sada, u prozoru Odaberite vrstu pravila >> ; odaberite Koristite formulu da odredite koje ćelije želite formatirati opciju.
- Zatim, u polje Format vrijednosti gdje je ova formula istinita , unesite ovu formulu:
=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)
- Sada odaberite odgovarajući tip formata klikom na dugme Format… u dijaloškom okviru.
U ovom trenutku, dijaloški okvir pod nazivom Format Cells će se pojaviti.
- Sada, iz Popuni opcija >> morate odabrati bilo koju od boja. Ovdje sam odabrao Svijetloplavu pozadinu. Također, možete odmah vidjeti uzorak . U ovom slučaju, pokušajte odabrati bilo koju svjetlu boju. Jer tamna boja može sakriti unesene podatke. Zatim ćete možda morati promijeniti Boja fonta .
- Zatim morate pritisnuti OK da biste primijenili formaciju.
- Nakon toga, morate pritisnuti OK na Novo pravilo formatiranja dijaloški okvir. Ovdje možete odmah vidjeti uzorak u polju Pregled .
Na kraju ćete dobiti formatirane brojeve.
Dozvolite mi da vam pokažem algoritam za rješavanje gornjeg problema:
- Ovdje, da biste lakše razumjeli algoritam, ja ću objasnite cijelu stvar s dvije referentne ćelije: ćelije C11 i C17 . U ćelijama C11 i C17 , vrijednosti su 10 i 20 respektivno (iznad slike). Ako ste navikli na Excel formule, onda možete namirisati funkciju OFFSET , jer funkcija OFFSET radi sa referentnim tačkama.
- Sad, zamislite da uzimam vrijednosti raspona ćelija C8:C11 & C11:C14 i C14:C17 & C17: C20 jedan pored drugog [slika ispod]. Referentne ćelije su C11 i C17 i uzimam ukupno 7 ćelija oko referentne ćelije. Dobićete zamišljenu sliku kao što je sledeća. U prvom dijelu možete pronaći uzorak sa slike. C9–C12=3 , C10-C13=3 , postoji uzorak. Ali za drugi dio, ne postoji takav obrazac.
- Dakle, hajde da izgradimo algoritam imajući na umu gornji obrazac. Prije nego što napravim zajedničku formulu, pokazat ću koje će formule biti zaćelije C11 i C17 , a zatim će modificirati formulu da bude zajednička za sve. Za referentnu tačku (kao što je C11 ili C17 ), uzet ću ukupno 7 ćelija oko nje (uključujući referentnu tačku) i postaviti ih jednu pored druge stranu u formuli koja stvara nizove. Tada ću saznati razliku nizova ako je bilo koja od razlika jednaka 3 da će referentna ćelija imati vrijednost TRUE .
- Ovdje mogu učinite to jednostavno koristeći funkciju OFFSET jer funkcija OFFSET vraća niz. Recimo za referencu ćelije C11 , mogu napisati formulu ovako: =OR(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . Šta će ova formula vratiti? Prva funkcija pomaka formule će vratiti niz: {10; 11; 12; 15} , druga funkcija pomaka će vratiti niz {5; 8; 9; 10} . I znate {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} . Kada se ovaj niz logički testira sa =3 onda Excel interno izračunava ovako: {5=3; 3=3; 3=3; 5=3} = {Netačno; Tačno; Tačno; Netačno . Kada se funkcija OR primeni na ovaj niz: OR({False; True; False; True} , dobijate TRUE . Dakle, ćelija C11 dobija prave vrijednosti kao vraćene.
- Dakle, mislim da imate cijeli koncept kako će ovaj algoritam raditi. Sada postoji problem. Ova formula može raditi izćelija C8 , iznad ćelije C8 , nalaze se 3 ćelije. Ali za ćelije C5, C6, i C7 ova formula ne može raditi. Dakle, formulu treba modificirati za ove ćelije.
- Sada, za ćelije C5 do C7 , želimo da formula ne uzima u obzir gornji 3 ćelije. Na primjer, za ćeliju C6 , naša formula neće biti kao formula za ćeliju C11 : =OR(OFFSET(C11, 0, 0, 4, 1)- OFFSET(C11, -3, 0, 4, 1)=3) .
- Ovdje, za ćeliju C5 , formula će biti kao: OR(OFFSET (C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- Onda, za ćeliju C6 , formula će biti kao: ILI(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Nakon da će za ćeliju C7 , formula biti kao: ILI(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)= 3) .
- Opet, za ćeliju C8 , formula će biti kao: OR(OFFSET(C8, 0, 0, 4, 1)-OFFSET( C8,-3, 0, 4, 1)=3) ; [ovo je opća formula].
- Onda, za ćeliju C9 , formula će biti kao: OR(OFFSET(C9, 0, 0, 4, 1)- OFFSET(C9,-3, 0, 4, 1)=3) ; [ovo je opća formula].
- Konačno, pronalazite li neke obrasce iz gornjih formula? Argument redova prve funkcije OFFSET smanjen je sa 3 na 0 ; argument visine je povećan sa 1 na 4 . Argument reda druge funkcije OFFSET smanjen je od 0 na -3 i argument visine je povećan sa 1 na 4 .
- Prvo, prvi OFFSET argument redova funkcije će biti modificiran ovako: MAX(ROW(C$5)-ROW(C5)+3,0)
- Drugo, drugi OFFSET argument redova funkcije će se modificirati ovako: MAX(ROW(C$5)-ROW(C5),-3)
- Treće, prvi OFFSET argument visine funkcije bit će modificiran ovako: MIN(ROW(C5)-ROW(C$5)+1,4)
- Četvrto, drugi OFFSET argument visine funkcije će biti modificiran ovako: MIN(ROW(C5)-ROW(C$5)+1,4)
- Sada pokušajte razumjeti gornju modifikaciju. Ovo nije tako teško razumjeti. Sve ove četiri modifikacije rade kao FOR LOOP Excel VBA, ali sam ih napravio sa Excel formulama.
- Dakle, dobili ste načine na koje opća formula radi za ćelije iz C5:C34 .
Tako da sam govorio o petlji u Excel tabelama. Dakle, ovo je savršen primjer petlje u Excelu. Ovdje svaki put kada formula uzme 7 ćelija i radi na ćelijama kako bi saznala određenu vrijednost.
2. Upotreba IF & ILI funkcije za stvaranje FOR petlje u Excelu
U ovom primjeru, pretpostavimo da želite provjeriti da li ćelije sadrže bilo koju vrijednost ili ne. Nadalje, sa Excel VBA FOR Loop, možete to učiniti lako, ali ovdje ću to učiniti koristeći Excel formulu.
Sada možete koristiti IF i ILI funkcioniraju kao Excel formula za kreiranje FOR petlje . Osim toga, ovu formulu možete modificirati prema vašim željama. Koraci su dati u nastavku.
Koraci:
- Prvo, morate odabrati drugu ćeliju E5 gdje želite vidjeti Status .
- Drugo, trebali biste koristiti odgovarajuću formulu u ćeliji E5 .
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Nakon toga pritisnite ENTER da dobijete rezultat.
Raščlamba formule
Ovdje će funkcija ILI vratiti TRUE ako bilo koja od datih logika postane TRUE .
- Prvo, B5=”” je 1. logika, koja će provjeriti da li ćelija B5 sadrži bilo vrijednost ili ne.
- Drugo, C5=”” je 2nd logika, koja će provjeriti da li ćelija C5 sadrži bilo koju vrijednost ili ne.
- Treće, D5=”” je 3. logika. Slično, koji će provjeriti da li ćelija D5 sadrži bilo koju vrijednost ili ne.
Sada, funkcija IF vraća rezultat koji će ispuniti dati uvjet .
- Kada funkcija ILI daje TRUE tada ćete dobiti “ Info Missing ” kao Status . U suprotnom, dobit ćete “ Gotovo ” kao Status .
- Nakon toga, morate povući Fill Handle ikona za Automatsko popunjavanje odgovarajućih podataka u ostatkućelije E6:E13 . Ili možete dvaput kliknuti na ikonu Fill Handle .
Konačno ćete dobiti sve rezultate .
3. Korištenje SUMIFS funkcije za kreiranje petlje FOR u Excelu
Pretpostavimo da želite napraviti ukupan račun za određenu osobu. U tom slučaju možete koristiti FOR petlju koristeći Excel formulu. Ovdje ću koristiti funkciju SUMIFS da kreiram FOR petlju u Excelu. Koraci su dati u nastavku.
Koraci:
- Prvo, morate odabrati drugu ćeliju F7 gdje želite vidjeti Status .
- Drugo, trebali biste koristiti odgovarajuću formulu u ćeliji F7 .
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Nakon toga pritisnite ENTER da dobijete rezultat.
Raščlamba formule
- Ovdje, $C$5:$C$13 je raspon podataka iz kojeg je SUMIFS funkcija će izvršiti sumiranje.
- Onda, $B$5:$B$13 je raspon podataka odakle će funkcija SUMIFS provjeriti date kriterije
- Na kraju, E7 je kriterij.
- Dakle, funkcija SUMIFS će dodati plaćanja za vrijednost ćelije E7 .
- Nakon toga, morate povući ikonu Ručica za popunjavanje za automatsko popunjavanje odgovarajućih podataka u ostalim ćelijama F8:F10 .
Konačno ćete dobiti rezultat.
Zaključak
Nadamo se da ćetesmatrao da je ovaj članak bio koristan. Ovdje smo objasnili 3 prikladne primjere za pravljenje FOR petlje u Excelu koristeći formule. Možete posjetiti našu web stranicu Exceldemy da saznate više sadržaja vezanih za Excel. Molimo ostavite komentare, prijedloge ili upite ako ih imate u odjeljku za komentare ispod.