Ynhâldsopjefte
Wolle jo Excel VBA net brûke en wolle jo in FOR Loop meitsje yn Excel mei Formule? Yn dit artikel haw ik sjen litten hoe't jo FOR Loop mei formules meitsje kinne.
As jo witte hoe't jo koade kinne mei Excel VBA , dan binne jo segene 🙂 . Mar, as jo noait koade yn VBA skreaun hawwe of jo Excel-wurkboek frij wolle hâlde fan Excel VBA -koade, dan moatte jo meastentiids bûten it fak tinke om in ienfâldige loop .
Wurkbestân downloade
Download it wurkbestân fan de ûndersteande keppeling:
Meitsje lus mei help fan formules. xlsx3 Foarbylden om FOAR Loop yn Excel te meitsjen mei Formule
Hjir sil ik 3 foarbylden demonstrearje om FOR Loop te meitsjen yn Excel mei in formule. Litte wy de detaillearre foarbylden sjen.
1. Kombinearre funksjes tapasse om FOAR Loop yn Excel te meitsjen
No, lit my de eftergrûn witte dy't my stimulearret om dit foarbyld te skriuwen.
Ik bin de skriuwer fan guon kursussen oer Udemy. Ien fan 'e kursussen is op Excel Conditional Formatting. De kursustitel is: Learn Excel Conditional Formatting with 7 Practical Problems. [ om fergees tagong te krijen ta dizze kursus, klikje hjir ].
Yn it kursusdiskusjeboerd , in studint stelde my in fraach lykas hjirûnder [skermôfbylding].
Fraach steld troch in studint yn Udemy.
Lês de boppesteande fraach goed en besykje it op te lossen...
Stappen om it boppesteande probleem op te lossen:
Hjir, iksil OF , OFFSET , MAX , MIN , en ROW -funksjes brûke as Excel-formule om in FOR Loop .
- Earst is jo taak om in nij wurkboek te iepenjen en de boppesteande wearden ien foar ien yn it wurkblêd yn te fieren [begjin fan sel C5 ] .
- Selektearje as twadde it hiele berik [fan sel C5:C34 ].
- Tredde, út it lint Thús >> klik op it kommando Betingsten opmaak .
- Selektearje as lêste de opsje Nije regel út it útklapmenu.
Op dit stuit ferskynt it dialoochfinster Nije opmaakregel .
- No, yn it finster Selektearje in regeltype >> ; selektearje Gebrûk in formule om te bepalen hokker sellen jo moatte opmaak opsje.
- Dan, yn it fjild Opmaakwearden wêr't dizze formule wier is , typ dizze formule:
=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)
- Selektearje no it passende opmaaktype troch te klikken op de knop Format… yn it dialoochfinster.
Op dit stuit sil in dialoochfinster mei de namme Sellen opmaak ferskine.
- No, fanút de Folje opsje >> jo moatte kieze ien fan de kleuren. Hjir haw ik de Ljochtblau eftergrûn selektearre. Jo kinne ek de sample daliks sjen. Besykje yn dit gefal elke ljochte kleur te kiezen. Om't de donkere kleur de ynfierde gegevens kin ferbergje. Dan moatte jo miskien de lettertypekleur feroarje.
- Dan moatte jo op drukke Okee om de formaasje oan te passen.
- Dêrnei moatte jo op OK drukke op de Nije opmaakregel dialoochfinster. Hjir kinne jo de stekproef daliks sjen yn it fak foarbyld .
As lêste krije jo de opmakke nûmers.
Lit my jo it algoritme sjen litte om it boppesteande probleem op te lossen:
- Hjir, om jo it algoritme maklik te begripen, sil ik ferklearje it gehiel mei twa referinsjesellen: sellen C11 en C17 . Yn sellen C11 en C17 binne de wearden respektivelik 10 en 20 (boppe ôfbylding). As jo wend binne oan Excel-formules, dan kinne jo de funksje OFFSET rûke, om't de funksje OFFSET wurket mei referinsjepunten.
- Stel jo no foar dat ik de wearden nim fan sel berik C8: C11 & amp; C11:C14 , en C14:C17 & C17: C20 side by side [ôfbylding hjirûnder]. Referinsjesellen binne C11 en C17 en ik nim in totaal fan 7 sellen om de referinsjesel hinne. Jo krije in tinkbyldige ôfbylding lykas de folgjende. Ut it earste diel kinne jo in patroan fine fan 'e ôfbylding. C9–C12=3 , C10-C13=3 , der is in patroan. Mar foar it twadde diel is d'r gjin sa'n patroan.
- Sa, lit ús it algoritme bouwe mei it boppesteande patroan yn gedachten. Foar it bouwen fan de mienskiplike formule, Ik sil sjen litte wat de formules sille wêze foar desellen C11 en C17 en dan sil de formule wizigje om it mienskiplik te meitsjen foar allegear. Foar in referinsjepunt (lykas C11 of C17 ), nim ik in totaal fan 7 sellen der omhinne (ynklusyf it referinsjepunt) en set se njonken kant yn 'e formule meitsjen fan arrays. Dan sil ik it ferskil fan 'e arrays útfine as ien fan 'e ferskillen gelyk is oan 3 dat de referinsjesel TRUE wurdearre wurdt.
- Hjir kin ik doch dat maklik mei de funksje OFFSET , om't de funksje OFFSET in array weromjout. Sis foar selreferinsje C11 , ik kin de formule sa skriuwe: =OF(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . Wat sil dizze formule weromkomme? De earste offsetfunksje fan de formule sil array werombringe: {10; 11; 12; 15} , twadde offsetfunksje sil array {5; 8; 9; 10} . En do witst {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} . As dizze array logysk hifke wurdt mei =3 dan berekkenet Excel yntern sa: {5=3; 3=3; 3=3; 5=3} = {False; Wier; Wier; False . As de funksje OR wurdt tapast op dizze array: OR({False; True; False; True} , krije jo TRUE . Dus sel C11 krijt wiere wearden as weromjûn.
- Dus, ik tink dat jo it hiele konsept hawwe fan hoe't dit algoritme sil wurkje. No is d'r in probleem. Dizze formule kin wurkje fanútsel C8 , boppe sel C8 , binne der 3 sellen. Mar foar sellen C5, C6, en C7 kin dizze formule net wurkje. Dus de formule moat wizige wurde foar dizze sellen.
- No, foar sellen C5 oant C7 , wolle wy dat de formule de boppeste<1 net yn rekken brocht> 3 sellen. Bygelyks, foar sel C6 , sil ús formule net wêze as de formule foar sel C11 : =OF(OFFSET(C11, 0, 0, 4, 1)- OFFSET(C11, -3, 0, 4, 1)=3) .
- Hjir, foar sel C5 , sil de formule sa wêze: OF(OFFSET) (C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- Dan, foar sel C6 , de formule sil wêze as: OF(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Nei dat, foar sel C7 , de formule sa wêze sil: OF(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)= 3) .
- Nochris, foar sel C8 , sil de formule sa wêze: OF(OFFSET(C8, 0, 0, 4, 1)-OFFSET( C8,-3, 0, 4, 1)=3) ; [dit is de algemiene formule].
- Dan, foar sel C9 , sil de formule sa wêze: OF(OFFSET(C9, 0, 0, 4, 1)- OFFSET(C9,-3, 0, 4, 1)=3) ; [dit is de algemiene formule].
- As lêste, fine jo wat patroanen út de boppesteande formules? It argumint fan 'e rigen fan 'e earste OFFSET funksje is fermindere fan 3 nei 0 ; it hichteargumint is ferhege fan 1 nei 4 . It rige argumint fan de twadde OFFSET -funksje is ôfnommen fan 0 nei -3 en hichte argumint is ferhege fan 1 nei 4 .
- Earst, de earste OFFSET -funksje's rigenargumint sil sa wizige wurde: MAX(ROW(C$5)-ROW(C5)+3,0)
- Twadde, de twadde OFFSET -funksje's rigenargumint sil sa wizige wurde: MAX(ROW(C$5)-ROW(C5),-3)
- Tredde, de earste OFFSET funksje's hichteargumint sil sa wizige wurde: MIN(ROW(C5)-ROW(C$5)+1,4)
- Fjirde, de twadde OFFSET funksje's hichteargumint sil sa wizige wurde: MIN(ROW(C5)-ROW(C$5)+1,4)
- Probearje no de boppesteande modifikaasje te begripen. Dizze binne net sa dreech te begripen. Al dizze fjouwer wizigingen wurkje as FOR LOOP fan Excel VBA, mar ik haw se boud mei Excel-formules.
- Dus, jo hawwe de manieren hoe't de algemiene formule wurket foar de sellen fan C5:C34 .
Dus ik hie it oer Looping yn Excel-spreadsheets. Dat, dit is in perfekt foarbyld fan looping yn Excel. Hjir, eltse kear de formule nimt 7 sellen en wurket op 'e sellen te finen út in spesifike wearde.
2. Gebrûk fan IF & amp; OR-funksjes om FOR Loop yn Excel te meitsjen
Stel yn dit foarbyld dat jo wolle kontrolearje oft de sellen wearden befetsje of net. Fierder, mei Excel VBA FOR Loop, kinne jo dit maklik dwaan, mar hjir sil ik dat dwaan mei in Excel-formule.
No kinne jo brûke de IF , en de OF funksjonearje as Excel-formule om FOR Loop te meitsjen. Fierder kinne jo dizze formule oanpasse neffens jo foarkar. De stappen wurde hjirûnder jûn.
Stappen:
- Earst moatte jo in oare sel selektearje E5 wêr't jo sjen wolle de Status .
- Twadens moatte jo de oerienkommende formule brûke yn de E5 -sel.
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Druk dêrnei op ENTER om it resultaat te krijen.
Formule-ôfdieling
Hjir sil de funksje OF WEI weromjaan as ien fan 'e opjûne logika TRUE
- Earst, B5=""" is de 1e logika, dy't kontrolearret oft de sel B5 ien of oare befettet wearde of net.
- Twadens is C5="" de 2e logika, dy't kontrolearret oft de sel C5 in wearde of net.
- Tredde, D5=""" is de 3e logika. Lykas, dat sil kontrolearje oft de sel D5 in wearde befettet of net.
No jout de funksje IF it resultaat werom dat in opjûne betingst foldwaan sil .
- As de funksje OF TRUE jout, dan krije jo " Info mist " as Status . Oars krije jo " Klear " as de Status .
- Dêrnei moatte jo de Fillhandtak
pictogram om AutoFill de oerienkommende gegevens yn 'e rest fande sellen E6:E13 . Of jo kinne dûbelklikke op it Fillhandtak -ikoantsje.
Uteinlik krije jo alle resultaten .
3. SUMIFS-funksje brûke om FOAR Loop yn Excel te meitsjen
Stel dat jo de totale rekken foar in bepaalde persoan meitsje wolle. Yn dat gefal kinne jo de FOR Loop brûke mei de Excel-formule. Hjir sil ik de SUMIFS-funksje brûke om de FOAR Loop yn Excel te meitsjen. De stappen wurde hjirûnder jûn.
Stappen:
- Earst moatte jo in oare sel selektearje F7 wêr't jo sjen wolle de Status .
- Twadens moatte jo de oerienkommende formule brûke yn de F7 -sel.
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Druk dêrnei op ENTER om it resultaat te krijen.
Formule-ôfdieling
- Hjir, $C$5:$C$13 is it gegevensberik wêrfan de SUMIFS funksje sil de gearfetting dwaan.
- Dan, $B$5:$B$13 is it gegevensberik wêrfan de funksje SUMIFS de opjûne kritearia kontrolearret
- Lêst, E7 is it kritearium.
- Dus, de funksje SUMIFS sil de betellingen tafoegje foar de E7 selwearde.
- Dêrnei moatte jo it Fillhandtak -ikoan slepe om de oerienkommende gegevens yn 'e rest fan 'e sellen automatysk ynfolje F8:F10 .
Ut lêst krije jo it resultaat.
Konklúzje
Wy hoopje dat jofûn dit artikel nuttich. Hjir hawwe wy 3 passende foarbylden útlein om FOR Loop yn Excel te meitsjen mei formules. Jo kinne ús webside Exceldemy besykje om mear Excel-relatearre ynhâld te learen. Asjebleaft, drop opmerkings, suggestjes of fragen as jo ien hawwe yn 'e kommentaar seksje hjirûnder.