Innehållsförteckning
Vill du inte använda Excel VBA och vill göra en FOR-slinga i Excel med hjälp av en formel? I den här artikeln har jag visat hur du kan göra en FOR-slinga med hjälp av formler.
Om du vet hur man kodar med Excel VBA är du välsignad 🙂. Men om du aldrig har skrivit kod i VBA eller om du vill hålla din Excel-arbetsbok fri från Excel VBA kod, måste du oftast tänka utanför boxen för att skapa en enkel och enkel slinga .
Ladda ner arbetsfilen
Ladda ner arbetsfilen från länken nedan:
Gör en slinga med hjälp av formler.xlsx3 exempel på hur du gör FOR-slinga i Excel med hjälp av formel
Här kommer jag att demonstrera följande 3 exempel på hur man gör FOR-slinga i Excel med hjälp av en formel. Låt oss se de detaljerade exemplen.
1. Tillämpa kombinerade funktioner för att skapa FOR-slinga i Excel
Låt mig nu berätta om bakgrunden som uppmuntrar mig att skriva det här exemplet.
Jag är författare till några kurser på Udemy. En av kurserna handlar om Excel Conditional Formatting. Kursens titel är: Lär dig Excel villkorlig formatering med 7 praktiska problem. [ Klicka här för att få gratis tillgång till denna kurs. ].
I kursens diskussionsforum ställde en student en fråga till mig enligt följande [skärmdump].
Fråga ställd av en student på Udemy.
Läs frågan ovan noggrant och försök att lösa den...
Åtgärder för att lösa ovanstående problem:
Här kommer jag att använda ELLER , OFFSET , MAX , MIN , och ROW funktioner som Excel Formula för att skapa en FOR-slinga .
- Först ska du öppna en ny arbetsbok och skriva in ovanstående värden ett efter ett i arbetsbladet [börja från cellen C5 ].
- För det andra väljer du hela intervallet [från cell C5:C34 ].
- För det tredje, från den Hem bandet>> klicka på Villkorlig formatering kommandot.
- Slutligen väljer du den Ny regel från rullgardinsmenyn.
Vid denna tidpunkt, Ny formateringsregel visas.
- Nu, i den Välj en regeltyp fönster>> välj Använd en formel för att bestämma vilka celler som ska formateras alternativ.
- Därefter, i den Formatera värden där denna formel är sann fältet, skriv den här formeln:
=ELLER(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)
- Välj nu lämplig formattyp genom att klicka på Format... i dialogrutan.
Då visas en dialogruta med namnet Formatera celler kommer att visas.
- Från och med nu, från Fyll på alternativet>> du måste välja någon av färgerna. Här valde jag den Ljusblå bakgrund. Du kan också se den exempel omedelbart. Försök i så fall att välja något av följande ljus eftersom den mörka färgen kan dölja de inmatade uppgifterna. Då kan du behöva ändra Typsnittsfärg .
- Därefter måste du trycka på OK för att tillämpa formationen.
- Därefter måste du trycka på OK på den Ny formateringsregel dialogrutan. Här kan du se exemplet direkt i Förhandsgranska box.
Slutligen får du de formaterade siffrorna.
Låt mig visa dig algoritmen för att lösa ovanstående problem:
- För att du lätt ska förstå algoritmen kommer jag att förklara det hela med hjälp av två referensceller: cells C11 och C17 . I celler C11 och C17 , värdena är 10 och 20 (bilden ovan). Om du är van vid Excel-formler kan du känna lukten av OFFSET funktion, som OFFSET fungerar med referenspunkter.
- Föreställ dig att jag tar värdena i cellintervallen C8:C11 & C11:C14 , och C14:C17 & C17: C20 sida vid sida [bilden nedan]. Referenscellerna är C11 och C17 och jag tar sammanlagt 7 celler runt referenscellen. Du får en tänkt bild som följande. Från den första delen kan du hitta ett mönster i bilden. C9-C12=3 , C10-C13=3 Men när det gäller den andra delen finns det inget sådant mönster.
- Så låt oss bygga algoritmen med ovanstående mönster i åtanke. Innan vi bygger den gemensamma formeln ska jag visa vad formlerna kommer att vara för cellerna C11 och C17 och ändrar sedan formeln för att göra den gemensam för alla. För en referenspunkt (som t.ex. C11 eller . C17 ), ska jag ta totalt 7 cellerna runt den (inklusive referenspunkten) och placera dem sida vid sida i formeln för att skapa matriser. Sedan ska jag ta reda på skillnaden mellan matriserna om någon av skillnaderna är lika med 3 att referenscellen kommer att vara TRUE uppskattad.
- Här kan jag göra det enkelt med hjälp av OFFSET funktion som den OFFSET funktionen returnerar en matris. Säg för cellreferens C11 Jag kan skriva formeln så här: =ELLER(OFFSET(C11, 0, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . Vad ger formeln? Den första offsetfunktionen i formeln ger en array: {10; 11; 12; 15} Den andra offset-funktionen returnerar matrisen {5; 8; 9; 10} . Och du vet {10; 11; 12; 15} - {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} När denna matris logiskt testas med =3 Excel gör en intern beräkning på följande sätt: {5=3; 3=3; 3=3; 3=3; 5=3} = {Falskt; Sant; Sant; Sant; Falskt} . När ELLER funktionen tillämpas på denna matris: OR({Falskt; Sant; Falskt; Sant} får du TRUE . Så cell C11 får sanna värden som returneras.
- Jag tror att du har förstått hur algoritmen kommer att fungera. Nu finns det ett problem. Formeln kan fungera från cell C8 , ovanför cellen C8 , det finns 3 celler. Men för celler C5, C6, och C7 kan denna formel inte fungera. Formeln bör därför ändras för dessa celler.
- För celler C5 till C7 vill vi att formeln inte ska ta hänsyn till den övre 3 celler. Till exempel, för cell C6 kommer vår formel inte att vara som formeln för cellen C11 : =ELLER(OFFSET(C11, 0, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) .
- Här, för cell C5 , kommer formeln att se ut på följande sätt: ELLER(OFFSET(C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 0, 1, 1)=3) .
- För cellen C6 , kommer formeln att se ut på följande sätt: ELLER(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Därefter, för cell C7 , kommer formeln att se ut på följande sätt: ELLER(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)=3) .
- För cell C8 , kommer formeln att se ut på följande sätt: ELLER(OFFSET(C8, 0, 0, 0, 4, 1)-OFFSET(C8,-3, 0, 4, 1)=3) ; [detta är den allmänna formeln].
- För cellen C9 , kommer formeln att se ut på följande sätt: ELLER(OFFSET(C9, 0, 0, 0, 4, 1)-OFFSET(C9,-3, 0, 4, 1)=3) ; [detta är den allmänna formeln].
- Kan du slutligen se några mönster i formlerna ovan? Det första OFFSET funktionens argument för rader har minskat från 3 till 0 ; höjdargumentet har ökat från 1 till 4 . Den andra OFFSET funktionens argument för rader har minskat från 0 till -3 och höjdargumentet har ökat från 1 till 4 .
- För det första, den första OFFSET funktionens rows-argument ändras på följande sätt: MAX(RAD(C$5)-RAD(C5)+3,0)
- För det andra, den andra OFFSET funktionens rows-argument kommer att ändras på följande sätt: MAX(RAD(C$5)-RAD(C5),-3)
- För det tredje, den första OFFSET funktionens höjdargument ändras på följande sätt: MIN(RAD(C5)-RAD(C$5)+1,4)
- För det fjärde, den andra OFFSET funktionens höjdargument ändras på följande sätt: MIN(RAD(C5)-RAD(C$5)+1,4)
- Försök nu att förstå ovanstående ändring. Den är inte så svår att förstå. Alla dessa fyra ändringarna fungerar som FÖR LOOP av Excel VBA, men jag har byggt dem med Excel-formler.
- Så du har fått veta hur den allmänna formeln fungerar för cellerna från C5:C34 .
Jag pratade om looping i Excel-kalkylblad. Detta är ett perfekt exempel på looping i Excel. Här tar formeln varje gång den tar 7 celler och arbetar med cellerna för att ta reda på ett visst värde.
2. Användning av IF & OR-funktioner för att skapa FOR Loop i Excel
I det här exemplet antar vi att du vill kontrollera om cellerna innehåller några värden eller inte. Dessutom kan du med Excel VBA FOR Loop, Du kan göra detta enkelt, men här kommer jag att göra det med en Excel-formel.
Nu kan du använda IF och ELLER funktioner som Excel Formula för att skapa FOR-slinga Du kan också ändra denna formel enligt dina önskemål, enligt nedanstående steg.
Steg:
- Först måste du välja en annan cell. E5 där du vill se Status .
- För det andra bör du använda motsvarande formel i E5 cell.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Tryck sedan på ENTER för att få fram resultatet.
Fördelning av formler
Här kan ELLER funktionen kommer att återge TRUE om någon av de angivna logikerna blir TRUE .
- För det första, B5="" är den 1:a logik, som kontrollerar om cellen B5 innehåller något värde eller inte.
- För det andra, C5="" är den 2:a logik, som kontrollerar om cellen C5 innehåller något värde eller inte.
- För det tredje, D5="" är den 3:e logik. På samma sätt kontrolleras det om cellen D5 innehåller något värde eller inte.
Nu har IF funktionen returnerar det resultat som uppfyller ett givet villkor.
- När den ELLER funktionen ger TRUE får du " Info saknas " som Status Annars får du " Klart " som den Status .
- Därefter måste du dra den Handtag för fyllning ikonen till AutoFill motsvarande uppgifter i resten av cellerna E6:E13 . Eller så kan du dubbelklicka på Handtag för fyllning ikon.
Slutligen får du alla resultat.
3. Använda SUMIFS-funktionen för att skapa en FOR-slinga i Excel
Anta att du vill göra den totala räkningen för en viss person. I det fallet kan du använda FOR-slinga med hjälp av Excel-formeln. Här kommer jag att använda funktionen SUMIFS för att skapa en FOR-slinga i Excel. Stegen beskrivs nedan.
Steg:
- Först måste du välja en annan cell. F7 där du vill se Status .
- För det andra bör du använda motsvarande formel i F7 cell.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Tryck sedan på ENTER för att få fram resultatet.
Fördelning av formler
- Här, $C$5:$C$13 är det dataområde från vilket SUMIFS funktionen gör summeringen.
- Då, $B$5:$B$13 är det dataområde från vilket SUMIFS funktionen kontrollerar de givna kriterierna
- Till sist, E7 är kriteriet.
- Så, den SUMIFS funktionen kommer att lägga till betalningarna för E7 cellvärde.
- Därefter måste du dra den Handtag för fyllning ikonen för att automatiskt fylla i motsvarande uppgifter i resten av cellerna. F8:F10 .
Slutligen får du resultatet.
Slutsats
Vi hoppas att du fann den här artikeln nyttig. Här har vi förklarat följande 3 lämpliga exempel för att göra FOR-slinga i Excel med hjälp av formler. Du kan besöka vår webbplats Excellent för att lära dig mer Excel-relaterat innehåll. Om du har kommentarer, förslag eller frågor kan du skriva dem i kommentarsfältet nedan.