Innholdsfortegnelse
Vil du ikke bruke Excel VBA og vil lage en FOR Loop i Excel ved hjelp av Formula? I denne artikkelen har jeg vist hvordan du kan lage FOR Loop ved hjelp av formler.
Hvis du vet hvordan du koder med Excel VBA , er du velsignet 🙂 . Men hvis du aldri skrev kode i VBA eller ønsker å holde Excel-arbeidsboken fri for Excel VBA -kode, må du mesteparten av tiden tenke ut av boksen for å lage en enkel loop .
Last ned arbeidsfil
Last ned arbeidsfilen fra lenken nedenfor:
Lag sløyfe med formler. xlsx3 eksempler å lage FOR Loop i Excel ved å bruke formel
Her vil jeg demonstrere 3 eksempler for å lage FOR Loop i Excel ved å bruke en formel. La oss se de detaljerte eksemplene.
1. Bruke kombinerte funksjoner for å lage FOR Loop i Excel
Fortell meg nå bakgrunnen som oppmuntrer meg til å skrive dette eksemplet.
Jeg er forfatter av noen kurs om Udemy. Ett av kursene er på Excel Conditional Formatting. Kurstittelen er: Lær Excel betinget formatering med 7 praktiske problemer. [ for å få gratis tilgang til dette kurset, klikk her ].
I kursets diskusjonstavle , stilte en student meg et spørsmål som nedenfor [skjermbilde].
Spørsmål stilt av en student i Udemy.
Les spørsmålet ovenfor nøye og prøv å løse det...
Trinn for å løse problemet ovenfor:
Her, jegvil bruke funksjonene ELLER , OFFSET , MAX , MIN og RAD som Excel-formel for å lage en FOR Loop .
- For det første er jobben din å åpne en ny arbeidsbok og legge inn verdiene ovenfor én etter én i regnearket [start fra celle C5 ] .
- For det andre, velg hele området [fra celle C5:C34 ].
- For det tredje, fra Hjem -båndet >> klikk på kommandoen Betinget formatering .
- Til slutt velger du alternativet Ny regel fra rullegardinmenyen.
På dette tidspunktet vises dialogboksen Ny formateringsregel .
- Nå, i vinduet Velg en regeltype >> ; velg Bruk en formel for å bestemme hvilke celler som skal formateres .
- Skriv deretter inn denne formelen i feltet Formatverdier der denne formelen er sann :
=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)
- Nå velger du riktig formattype ved å klikke på Format... -knappen i dialogboksen.
På dette tidspunktet vil en dialogboks med navnet Formater celler vises.
- Nå, fra Fyll alternativ >> du må velge hvilken som helst av fargene. Her valgte jeg Lyseblå -bakgrunnen. Du kan også se eksemplet umiddelbart. I dette tilfellet, prøv å velge hvilken som helst lys farge. Fordi den mørke fargen kan skjule innlagte data. Deretter må du kanskje endre skriftfarge .
- Deretter må du trykke på OK for å bruke formasjonen.
- Etter det må du trykke OK på Ny formateringsregel dialogboks. Her kan du se eksempelet umiddelbart i Forhåndsvisning -boksen.
Til slutt vil du få de formaterte tallene.
La meg vise deg algoritmen for å løse problemet ovenfor:
- Her, for å få deg til å forstå algoritmen lett, vil jeg forklar det hele med to referanseceller: cellene C11 og C17 . I cellene C11 og C17 er verdiene henholdsvis 10 og 20 (over bildet). Hvis du er vant til Excel-formler, kan du lukte OFFSET -funksjonen, siden OFFSET -funksjonen fungerer med referansepunkter.
- Tenk deg nå at jeg tar verdiene av celleområder C8:C11 & C11:C14<2, og C14:C17 & C17: C20 side ved side [bilde under]. Referanseceller er C11 og C17 og jeg tar totalt 7 celler rundt referansecellen. Du vil få et tenkt bilde som følgende. Fra den første delen kan du finne et mønster fra bildet. C9–C12=3 , C10-C13=3 , det er et mønster. Men for den andre delen er det ikke noe slikt mønster.
- Så, la oss bygge algoritmen med tanke på mønsteret ovenfor. Før jeg bygger den vanlige formelen, skal jeg vise hva formlene vil være forcellene C11 og C17 og vil deretter endre formelen for å gjøre den felles for alle. For et referansepunkt (som C11 eller C17 ), skal jeg ta totalt 7 celler rundt det (inkludert referansepunktet) og plassere dem ved siden av side i formelen som skaper matriser. Så skal jeg finne ut forskjellen på matrisene hvis noen av forskjellene er lik 3 at referansecellen vil være TRUE verdsatt.
- Her kan jeg gjør det enkelt ved å bruke OFFSET -funksjonen ettersom OFFSET -funksjonen returnerer en matrise. Si for cellereferanse C11 , jeg kan skrive formelen slik: =ELLER(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . Hva vil denne formelen returnere? Den første offsetfunksjonen til formelen vil returnere matrise: {10; 11; 12; 15} , andre offset-funksjon vil returnere array {5; 8; 9; 10} . Og du vet {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} . Når denne matrisen er logisk testet med =3 , beregner Excel internt slik: {5=3; 3=3; 3=3; 5=3} = {False; Ekte; Ekte; False . Når ELLER -funksjonen brukes på denne matrisen: ELLER({False; True; False; True} , får du TRUE . Så celle C11 får sanne verdier som returnert.
- Så jeg tror du har fått med deg hele konseptet om hvordan denne algoritmen skal fungere. Nå er det et problem. Denne formelen kan fungere fracelle C8 , over celle C8 , er det 3 celler. Men for cellene C5, C6, og C7 kan ikke denne formelen fungere. Så formelen bør modifiseres for disse cellene.
- Nå, for cellene C5 til C7 , ønsker vi at formelen ikke skal ta hensyn til den øvre 3 celler. For eksempel, for celle C6 , vil formelen vår ikke være som formelen for celle C11 : =ELLER(OFFSET(C11, 0, 0, 4, 1)- OFFSET(C11, -3, 0, 4, 1)=3) .
- Her, for celle C5 , vil formelen være slik: ELLER(OFFSET (C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- Deretter, for celle C6 , formelen vil være slik: ELLER(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Etter at for celle C7 vil formelen være slik: ELLER(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)= 3) .
- Igjen, for celle C8 , vil formelen være slik: OR(OFFSET(C8, 0, 0, 4, 1)-OFFSET( C8,-3, 0, 4, 1)=3)2; [dette er den generelle formelen].
- Deretter, for celle C9 , vil formelen være slik: ELLER(OFFSET(C9, 0, 0, 4, 1)- OFFSET(C9,-3, 0, 4, 1)=3) ; [dette er den generelle formelen].
- Til slutt, finner du noen mønstre fra formlene ovenfor? Den første OFFSET -funksjonens radargument har redusert fra 3 til 0 ; høydeargumentet har økt fra 1 til 4 . Den andre OFFSET -funksjonens radargument er redusert fra 0 til -3 og høydeargumentet har økt fra 1 til 4 .
- For det første, den første OFFSET -funksjonens radargument vil bli endret slik: MAX(ROW(C$5)-ROW(C5)+3,0)
- For det andre, den andre OFFSET -funksjonens radargument vil bli endret slik: MAX(ROW(C$5)-ROW(C5),-3)
- For det tredje, den første OFFSET funksjonens høydeargument vil bli endret slik: MIN(RAD(C5)-RAD(C$5)+1,4)
- For det fjerde, den andre OFFSET funksjonens høydeargument vil bli endret slik: MIN(RAD(C5)-RAD(C$5)+1,4)
- Nå, prøv å forstå modifikasjonen ovenfor. Disse er ikke så vanskelige å forstå. Alle disse fire modifikasjonene fungerer som FOR LOOP av Excel VBA, men jeg har bygget dem med Excel-formler.
- Så, du har hvordan den generelle formelen fungerer for cellene fra C5:C34 .
Så jeg snakket om Looping i Excel-regneark. Så dette er et perfekt eksempel på looping i Excel. Her, hver gang formelen tar 7 celler og jobber på cellene for å finne ut en bestemt verdi.
2. Bruk av IF & ELLER-funksjoner for å lage FOR-løkke i Excel
I dette eksemplet, anta at du vil sjekke om cellene inneholder verdier eller ikke. Videre, med Excel VBA FOR Loop, kan du gjøre dette enkelt, men her vil jeg gjøre det ved å bruke en Excel-formel.
Nå kan du bruke IF og ELLER fungerer som Excel-formel for å lage FOR-løkke . Videre kan du endre denne formelen i henhold til dine preferanser. Trinnene er gitt nedenfor.
Trinn:
- Først må du velge en annen celle E5 der du vil se Status .
- For det andre bør du bruke den tilsvarende formelen i E5 -cellen.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Trykk deretter ENTER for å få resultatet.
Formelfordeling
Her vil ELLER -funksjonen returnere TRUE hvis noen av de gitte logikkene blir TRUE .
- For det første, B5=”” er 1. -logikken, som vil sjekke om cellen B5 inneholder noen verdi eller ikke.
- For det andre er C5=”” 2nd -logikken, som vil sjekke om cellen C5 inneholder noen verdi eller ikke.
- For det tredje, D5=”” er 3. logikken. På samme måte, som vil sjekke om cellen D5 inneholder noen verdi eller ikke.
Nå returnerer HVIS -funksjonen resultatet som vil oppfylle en gitt betingelse .
- Når ELLER -funksjonen gir TRUE vil du få " Info mangler " som Status . Ellers vil du få « Ferdig » som Status .
- Etter det må du dra Fyllhåndtaket ikonet for å Autofyll de tilsvarende dataene i resten avcellene E6:E13 . Eller du kan dobbeltklikke på Fyllhåndtak -ikonet.
Til slutt får du alle resultatene .
3. Bruke SUMIFS-funksjonen for å lage FOR Loop i Excel
Anta at du vil lage den totale regningen for en bestemt person. I så fall kan du bruke FOR Loop ved hjelp av Excel-formelen. Her vil jeg bruke SUMIFS-funksjonen for å lage FOR Loop i Excel. Trinnene er gitt nedenfor.
Trinn:
- Først må du velge en annen celle F7 der du vil se Status .
- For det andre bør du bruke den tilsvarende formelen i F7 -cellen.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Trykk deretter ENTER for å få resultatet.
Formeloversikt
- Her er $C$5:$C$13 dataområdet som SUMIFS funksjonen vil gjøre summeringen.
- Deretter er $B$5:$B$13 dataområdet der SUMIFS -funksjonen vil sjekke de gitte kriteriene
- Til slutt er E7 kriteriet.
- Så SUMIFS -funksjonen vil legge til betalingene for E7 -celleverdien.
- Etter det må du dra Fyllhåndtak -ikonet for å autofylle tilsvarende data i resten av cellene F8:F10 .
Endelig får du resultatet.
Konklusjon
Vi håper dufant denne artikkelen nyttig. Her har vi forklart 3 passende eksempler for å lage FOR Loop i Excel ved hjelp av formler. Du kan besøke nettstedet vårt Exceldemy for å lære mer Excel-relatert innhold. Vennligst slipp kommentarer, forslag eller spørsmål hvis du har noen i kommentarfeltet nedenfor.