Obsah
Nechcete používať Excel VBA a chcete vytvoriť Slučka FOR v programe Excel pomocou vzorca? V tomto článku som ukázal, ako môžete vytvoriť Slučka FOR pomocou vzorcov.
Ak viete kódovať v programe Excel VBA , ste požehnaní 🙂. Ale ak ste nikdy nenapísali kód v VBA alebo chcete, aby váš zošit Excelu neobsahoval VBA kód, potom väčšinou musíte myslieť mimo škatuľu, aby ste vytvorili jednoduchý slučka .
Stiahnuť pracovný súbor
Pracovný súbor si stiahnite z nižšie uvedeného odkazu:
Vytvorenie slučky pomocou vzorcov.xlsx3 príklady na vytvorenie slučky FOR v programe Excel pomocou vzorca
Tu vám ukážem. 3 príklady na vytvorenie Slučka FOR v programe Excel pomocou vzorca. Pozrime sa na podrobné príklady.
1. Použitie kombinovaných funkcií na vytvorenie slučky FOR v programe Excel
Teraz mi povedzte, čo ma viedlo k napísaniu tohto príkladu.
Som autorom niekoľkých kurzov na Udemy. Jeden z kurzov je o podmienenom formátovaní Excelu. Názov kurzu je: Naučte sa podmienené formátovanie programu Excel pomocou 7 praktických úloh. [ ak chcete získať bezplatný prístup k tomuto kurzu, kliknite sem ].
V diskusnom fóre kurzu mi jeden študent položil nasledujúcu otázku [obrázok].
Otázka, ktorú položil študent v Udemy.
Pozorne si prečítajte uvedenú otázku a pokúste sa ju vyriešiť...
Kroky na vyriešenie uvedeného problému:
Tu použijem ALEBO , OFFSET , MAX , MIN a ROW funkcie ako vzorec programu Excel na vytvorenie Slučka FOR .
- Najprv je vašou úlohou otvoriť nový zošit a postupne do pracovného hárka [začnite od bunky C5 ].
- Po druhé, vyberte celý rozsah [z bunky C5:C34 ].
- Po tretie, z Domov stuha>> kliknite na Podmienené formátovanie príkaz.
- Nakoniec vyberte Nové pravidlo možnosť z rozbaľovacieho zoznamu.
V tomto čase, Nové pravidlo formátovania Zobrazí sa dialógové okno.
- Teraz v Vyberte typ pravidla okno>> vybrať Použitie vzorca na určenie buniek, ktoré sa majú formátovať možnosť.
- Potom v Formátovanie hodnôt, pri ktorých je tento vzorec pravdivý zadajte tento vzorec:
=OR(OFFSET(C5,MAX(RIADOK(C$5)-RIADOK(C5)+3,0),0,MIN(RIADOK(C5)-RIADOK(C$5)+1,4),1)-OFFSET(C5,MAX(RIADOK(C$5)-RIADOK(C5),-3),0,MIN(RIADOK(C5)-RIADOK(C$5)+1,4),1)=3)
- Teraz vyberte príslušný typ formátu kliknutím na Formát... v dialógovom okne.
V tomto okamihu sa zobrazí dialógové okno s názvom Formátovanie buniek sa objaví.
- Teraz z Naplňte stránku možnosť>> musíte vybrať niektorú z farieb. Tu som vybral Svetlomodrá farba pozadie. Tiež môžete vidieť vzorka okamžite. V tomto prípade sa pokúste vybrať niektorý svetlo Pretože tmavá farba môže zakryť zadané údaje. Potom možno budete musieť zmeniť Farba písma .
- Potom musíte stlačiť OK použiť formáciu.
- Potom musíte stlačiť OK na Nové pravidlo formátovania Tu môžete okamžite vidieť vzorku v dialógovom okne Náhľad box.
Nakoniec získate formátované čísla.
Ukážem vám algoritmus na riešenie uvedeného problému:
- Aby ste algoritmus ľahko pochopili, vysvetlím vám celú vec pomocou dvoch referenčných buniek: buniek C11 a C17 V bunkách C11 a C17 , hodnoty sú 10 a 20 Ak ste zvyknutí na vzorce Excelu, potom môžete cítiť OFFSET funkciu, ako OFFSET funkcia pracuje s referenčnými bodmi.
- Teraz si predstavte, že beriem hodnoty rozsahov buniek C8:C11 & C11:C14 a C14:C17 & C17: C20 vedľa seba [obrázok nižšie]. Referenčné bunky sú C11 a C17 a ja beriem celkovo 7 buniek okolo referenčnej bunky. Získate imaginárny obrázok, ako je uvedený nižšie. Z prvej časti môžete nájsť vzor z obrázka. C9-C12=3 , C10-C13=3 V prípade druhej časti však takýto vzor neexistuje.
- Poďme teda zostaviť algoritmus s ohľadom na vyššie uvedený vzor. Pred zostavením spoločného vzorca ukážem, aké budú vzorce pre bunky C11 a C17 a potom upraví vzorec tak, aby bol spoločný pre všetkých. Pre referenčný bod (ako napr. C11 alebo C17 ), beriem celkovo 7 bunky okolo neho (vrátane referenčného bodu) a umiestnime ich vedľa seba do vzorca, čím vytvoríme polia. Potom zistím rozdiel polí, ak sa niektorý z rozdielov rovná 3 že referenčná bunka bude TRUE hodnotené.
- Tu to môžem urobiť jednoducho pomocou OFFSET funkciu ako OFFSET funkcia vracia pole. Povedzme pre odkaz na bunku C11 , môžem vzorec napísať takto: =ALEBO(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) Čo vráti tento vzorec? Prvá funkcia posunu vzorca vráti pole: {10; 11; 12; 15} , druhá funkcia posunu vráti pole {5; 8; 9; 10} A viete. {10; 11; 12; 15} - {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} Keď sa toto pole logicky testuje pomocou =3 potom Excel počíta interne takto: {5=3; 3=3; 3=3; 5=3} = {False; True; True; False} . Keď sa ALEBO sa na toto pole aplikuje funkcia: OR({False; True; False; True} , dostanete TRUE . Takže bunka C11 dostane vrátené hodnoty true.
- Myslím, že ste pochopili celý koncept fungovania tohto algoritmu. Teraz je tu problém. Tento vzorec môže fungovať z bunky C8 , nad bunkou C8 , existujú 3 bunky. Ale pre bunky C5, C6, a C7 tento vzorec nemôže fungovať. Preto by sa mal vzorec pre tieto bunky upraviť.
- Teraz pre bunky C5 na C7 , chceme, aby vzorec nebral do úvahy hornú 3 bunky. Napríklad pre bunku C6 , náš vzorec nebude ako vzorec pre bunku C11 : =ALEBO(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) .
- Tu pre bunky C5 , vzorec bude vyzerať takto: ALEBO(OFFSET(C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- Potom pre bunku C6 , vzorec bude vyzerať takto: ALEBO(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Potom pre bunky C7 , vzorec bude vyzerať takto: ALEBO(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)=3) .
- Aj v prípade buniek C8 , vzorec bude vyzerať takto: ALEBO(OFFSET(C8, 0, 0, 4, 1)-OFFSET(C8,-3, 0, 4, 1)=3) ; [toto je všeobecný vzorec].
- Potom pre bunku C9 , vzorec bude vyzerať takto: ALEBO(OFFSET(C9, 0, 0, 4, 1)-OFFSET(C9,-3, 0, 4, 1)=3) ; [toto je všeobecný vzorec].
- Nakoniec, našli ste z uvedených vzorcov nejaké vzory? Prvý OFFSET argument riadkov funkcie sa znížil z 3 na 0 ; argument výšky sa zvýšil z 1 na 4 . Druhý OFFSET argument riadkov funkcie sa znížil z 0 na -3 a výška argumentu sa zvýšila z 1 na 4 .
- Po prvé, prvý OFFSET argument riadkov funkcie bude upravený takto: MAX(RIADOK(C$5)-RIADOK(C5)+3,0)
- Po druhé, druhý OFFSET argument riadkov funkcie bude upravený takto: MAX(RIADOK(C$5)-RIADOK(C5),-3)
- Po tretie, prvý OFFSET argument výšky funkcie sa upraví takto: MIN(RIADOK(C5)-RIADOK(C$5)+1,4)
- Po štvrté, druhý OFFSET argument výšky funkcie sa upraví takto: MIN(RIADOK(C5)-RIADOK(C$5)+1,4)
- Teraz sa pokúste pochopiť vyššie uvedené úpravy. Nie je to až také ťažké pochopiť. štyri úpravy fungujú ako PRE LOOP Excel VBA, ale vytvoril som ich pomocou vzorcov Excelu.
- Takže ste sa dozvedeli, ako funguje všeobecný vzorec pre bunky z C5:C34 .
Hovoril som o slučke v tabuľkách Excelu. Toto je dokonalý príklad slučky v programe Excel. Tu sa vždy, keď vzorec trvá 7 a pracuje s bunkami, aby zistil konkrétnu hodnotu.
2. Použitie funkcií IF & OR na vytvorenie slučky FOR v programe Excel
V tomto príklade predpokladajme, že chcete skontrolovať, či bunky obsahujú nejaké hodnoty alebo nie. Okrem toho pomocou Excel VBA FOR Loop, môžete to urobiť jednoducho, ale tu to urobím pomocou vzorca Excelu.
Teraz môžete použiť . IF a ALEBO funkcie ako vzorec programu Excel na vytvorenie Slučka FOR Okrem toho môžete tento vzorec upraviť podľa svojich preferencií. Kroky sú uvedené nižšie.
Kroky:
- Najprv musíte vybrať inú bunku E5 kde chcete vidieť Stav .
- Po druhé, mali by ste použiť príslušný vzorec v E5 bunky.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Následne stlačte VSTÚPIŤ na získanie výsledku.
Rozdelenie vzorca
Tu sa ALEBO funkcia vráti TRUE ak sa niektorá z daných logík stane TRUE .
- Po prvé, B5="" je 1. logika, ktorá skontroluje, či bunka B5 obsahuje alebo neobsahuje žiadnu hodnotu.
- Po druhé, C5="" je 2. logika, ktorá skontroluje, či bunka C5 obsahuje alebo neobsahuje žiadnu hodnotu.
- Po tretie, D5="" je 3. logika. Podobne, ktorá skontroluje, či bunka D5 obsahuje alebo neobsahuje žiadnu hodnotu.
Teraz sa IF funkcia vráti výsledok, ktorý splní danú podmienku.
- Keď sa ALEBO funkcia poskytuje TRUE potom sa zobrazí " Chýbajúce informácie " ako Stav V opačnom prípade dostanete " Hotovo " ako Stav .
- Potom musíte pretiahnuť Rukoväť náplne ikonu na Automatické vypĺňanie zodpovedajúce údaje v ostatných bunkách E6:E13 . Alebo môžete dvakrát kliknúť na Rukoväť náplne ikona.
Nakoniec získate všetky výsledky.
3. Využitie funkcie SUMIFS na vytvorenie slučky FOR v programe Excel
Predpokladajme, že chcete vytvoriť celkový účet pre určitú osobu. V takom prípade môžete použiť Slučka FOR pomocou vzorca Excelu. Tu použijem funkcia SUMIFS na vytvorenie Slučka FOR v programe Excel. Kroky sú uvedené nižšie.
Kroky:
- Najprv musíte vybrať inú bunku F7 kde chcete vidieť Stav .
- Po druhé, mali by ste použiť príslušný vzorec v F7 bunky.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Následne stlačte VSTÚPIŤ na získanie výsledku.
Rozdelenie vzorca
- Tu, $C$5:$C$13 je rozsah údajov, z ktorého sa SUMIFS funkcia vykoná súčet.
- Potom, $B$5:$B$13 je rozsah údajov, od ktorého SUMIFS funkcia skontroluje zadané kritériá
- Nakoniec, E7 je kritérium.
- Takže SUMIFS funkcia pridá platby za E7 hodnota bunky.
- Potom musíte pretiahnuť Rukoväť náplne ikona na automatické vyplnenie zodpovedajúcich údajov v ostatných bunkách F8:F10 .
Nakoniec dostanete výsledok.
Záver
Dúfame, že vám tento článok pomohol. 3 vhodné príklady na vytvorenie Slučka FOR v programe Excel pomocou vzorcov. Môžete navštíviť našu webovú stránku Exceldemy Ak sa chcete dozvedieť viac obsahu súvisiaceho s programom Excel, uveďte svoje pripomienky, návrhy alebo otázky v sekcii komentárov nižšie.