Taula de continguts
No voleu utilitzar Excel VBA i voleu fer un FOR Loop a Excel amb Formula? En aquest article, he mostrat com pots fer FOR Loop utilitzant fórmules.
Si saps com codificar amb l'Excel VBA , estàs beneït 🙂 . Però, si mai no heu escrit codi a VBA o voleu mantenir el vostre llibre de treball d'Excel lliure de codi VBA d'Excel, la majoria de vegades haureu de pensar fora de la caixa per crear un simple bucle .
Baixeu el fitxer de treball
Descarregueu el fitxer de treball des de l'enllaç següent:
Feu un bucle amb fórmules. xlsx3 exemples per fer un bucle FOR a Excel utilitzant la fórmula
Aquí, mostraré 3 exemples per fer bucle FOR a Excel amb un fórmula. Vegem els exemples detallats.
1. Aplicació de funcions combinades per fer un bucle FOR a Excel
Ara, feu-me saber els antecedents que m'animan a escriure aquest exemple.
Sóc l'autor d'alguns cursos sobre Udemy. Un dels cursos és sobre Format condicional d'Excel. El títol del curs és: Aprèn el format condicional d'Excel amb 7 problemes pràctics. [ per obtenir accés gratuït a aquest curs, fes clic aquí ].
Al tauler de discussió del curs , un estudiant em va fer una pregunta com a continuació [imatge de captura de pantalla].
Pregunta feta per un estudiant a Udemy.
Llegiu atentament la pregunta anterior i intenteu resoldre-la...
Passos per resoldre el problema anterior:
Aquí, joutilitzarà les funcions OR , OFFSET , MAX , MIN i ROW com a fórmula d'Excel per crear un FOR Loop .
- En primer lloc, el vostre treball consisteix a obrir un nou llibre de treball i introduir els valors anteriors un per un al full de treball [comenceu des de la cel·la C5 ] .
- En segon lloc, seleccioneu tot l'interval [de la cel·la C5:C34 ].
- En tercer lloc, des de la cinta Inici >> feu clic a l'ordre Format condicionat .
- Finalment, seleccioneu l'opció Nova regla del menú desplegable.
En aquest moment, apareix el quadre de diàleg Nova regla de format .
- Ara, a la finestra Selecciona un tipus de regla >> ; seleccioneu l'opció Utilitza una fórmula per determinar quines cel·les s'ha de formatar .
- A continuació, al camp Formatar valors on aquesta fórmula és certa , escriviu aquesta fórmula:
=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)
- Ara, seleccioneu el tipus de format adequat fent clic al botó Format... del quadre de diàleg.
En aquest moment, apareixerà un quadre de diàleg anomenat Format cel·les .
- Ara, des del Emplenar opció >> has de triar qualsevol dels colors. Aquí, he seleccionat el fons Blau clar . A més, podeu veure la mostra a l'instant. En aquest cas, proveu de triar qualsevol color clar . Perquè el color fosc pot amagar les dades introduïdes. Aleshores, potser haureu de canviar el Color del tipus de lletra .
- A continuació, haureu de prémer D'acord per aplicar la formació.
- Després d'això, haureu de prémer D'acord a Quadre de diàleg Nova regla de format . Aquí podeu veure la mostra a l'instant al quadre Vista prèvia .
Per últim, obtindreu els números amb format.
Permeteu-me que us mostri l'algorisme per resoldre el problema anterior:
- Aquí, per fer-vos entendre l'algorisme fàcilment, expliqueu-ho tot amb dues cel·les de referència: cel·les C11 i C17 . A les cel·les C11 i C17 , els valors són 10 i 20 respectivament (imatge de dalt). Si esteu acostumats a les fórmules d'Excel, podeu sentir l'olor de la funció OFFSET , ja que la funció OFFSET funciona amb punts de referència.
- Ara, imagineu-vos que estic prenent els valors. dels intervals de cel·les C8:C11 & C11:C14 i C14:C17 & C17: C20 costat a costat [imatge a continuació]. Les cel·les de referència són C11 i C17 i estic agafant un total de 7 cel·les al voltant de la cel·la de referència. Obtindreu una imatge imaginària com la següent. Des de la primera part, podeu trobar un patró de la imatge. C9–C12=3 , C10-C13=3 , hi ha un patró. Però per a la segona part, no hi ha aquest patró.
- Per tant, construïm l'algorisme tenint en compte el patró anterior. Abans de construir la fórmula comuna, mostraré quines seran les fórmules per alcel·les C11 i C17 i després modificarà la fórmula per fer-la comuna per a tots. Per a un punt de referència (com C11 o C17 ), agafaré un total de 7 cel·les al seu voltant (inclòs el punt de referència) i les col·locaré juntes. costat de la fórmula creant matrius. Aleshores esbrinaré la diferència de les matrius si alguna de les diferències és igual a 3 que la cel·la de referència tindrà un valor TRUE .
- Aquí puc feu-ho fàcilment utilitzant la funció OFFSET ja que la funció OFFSET retorna una matriu. Per exemple, per a la referència de cel·la C11 , puc escriure la fórmula així: =OR(OFFSET(C11, 0, 0, 4, 1)-OFFSET(C11, -3, 0, 4, 1)=3) . Què retornarà aquesta fórmula? La primera funció de compensació de la fórmula retornarà la matriu: {10; 11; 12; 15} , la segona funció de compensació retornarà la matriu {5; 8; 9; 10} . I ja saps {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} . Quan aquesta matriu es prova lògicament amb =3 aleshores Excel calcula internament així: {5=3; 3=3; 3=3; 5=3} = {Fals; cert; cert; Fals . Quan s'aplica la funció OR a aquesta matriu: OR({Fals; Vertader; Fals; Vertader , obteniu VERTADER . Així, la cel·la C11 obté els valors reals tal com es retorna.
- Per tant, crec que teniu tot el concepte de com funcionarà aquest algorisme. Ara hi ha un problema. Aquesta fórmula pot funcionar des decel·la C8 , a sobre de cel·la C8 , hi ha 3 cel·les. Però per a les cel·les C5, C6, i C7 aquesta fórmula no pot funcionar. Per tant, la fórmula s'hauria de modificar per a aquestes cel·les.
- Ara, per a les cel·les C5 a C7 , volem que la fórmula no tingui en compte la part superior 3 cel·les. Per exemple, per a la cel·la C6 , la nostra fórmula no serà com la fórmula per a la cel·la C11 : =OR(OFFSET(C11, 0, 0, 4, 1)- OFFSET(C11, -3, 0, 4, 1)=3) .
- Aquí, per a la cel·la C5 , la fórmula serà com: OR(OFFSET (C5, 3, 0, 1, 1)-OFFSET(C5, 0, 0, 1, 1)=3) .
- A continuació, per a la cel·la C6 , el La fórmula serà com: OR(OFFSET(C6, 2, 0, 2, 1)-OFFSET(C6, -1, 0, 2, 1)=3) .
- Després que, per a la cel·la C7 , la fórmula serà com: OR(OFFSET(C7, 1, 0, 3, 1)-OFFSET(C7, -2, 0, 3, 1)= 3) .
- De nou, per a la cel·la C8 , la fórmula serà com: OR(OFFSET(C8, 0, 0, 4, 1)-OFFSET( C8,-3, 0, 4, 1)=3) ; [aquesta és la fórmula general].
- Llavors, per a la cel·la C9 , la fórmula serà com: OR(OFFSET(C9, 0, 0, 4, 1)- OFFSET(C9,-3, 0, 4, 1)=3) ; [aquesta és la fórmula general].
- Finalment, trobes alguns patrons de les fórmules anteriors? L'argument de files de la primera funció OFFSET ha disminuït de 3 a 0 ; l'argument d'alçada ha augmentat de 1 a 4 . L'argument de files de la segona funció OFFSET ha disminuït 0 a -3 i l'argument d'alçada ha augmentat de 1 a 4 .
- En primer lloc, el primer <1 L'argument de files de la funció>OFFSET es modificarà així: MAX(ROW(C$5)-ROW(C5)+3,0)
- En segon lloc, el segon L'argument de les files de la funció OFFSET es modificarà així: MAX(ROW(C$5)-ROW(C5),-3)
- En tercer lloc, el primer OFFSET
es modificarà així: MIN(ROW(C5)-ROW(C$5)+1,4) - En quart lloc, el segon OFFSET L'argument d'alçada de la funció es modificarà així: MIN(ROW(C5)-ROW(C$5)+1,4)
- Ara, intenteu entendre la modificació anterior. Aquests no són tan difícils d'entendre. Totes aquestes quatre modificacions funcionen com a FOR LOOP d'Excel VBA, però les he creat amb fórmules d'Excel.
- Així, tens les maneres com la fórmula general funciona per a les cel·les de C5:C34 .
Així que estava parlant de bucles en fulls de càlcul Excel. Per tant, aquest és un exemple perfecte de bucle a Excel. Aquí, cada vegada que la fórmula pren 7 cel·les i treballa sobre les cel·les per trobar un valor específic.
2. Ús de IF & O Funcions per crear un bucle FOR a Excel
En aquest exemple, suposem que voleu comprovar si les cel·les contenen valors o no. A més, amb Excel VBA FOR Loop ho podeu fer fàcilment, però aquí ho faré amb una fórmula d'Excel.
Ara podeu utilitzar el IF i el OR funcionen com a fórmula d'Excel per crear bucle FOR . A més, podeu modificar aquesta fórmula segons les vostres preferències. Els passos es donen a continuació.
Passos:
- Primer, heu de seleccionar una cel·la diferent E5 on voleu veure l' Estat .
- En segon lloc, hauríeu d'utilitzar la fórmula corresponent a la cel·la E5 .
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- A continuació, premeu INTRO per obtenir el resultat.
Desglossament de la fórmula
Aquí, la funció O retornarà TRUE si alguna de la lògica donada esdevé TRUE .
- En primer lloc, B5="” és la lògica 1st , que comprovarà si la cel·la B5 conté algun valor o no.
- En segon lloc, C5="” és la lògica 2n , que comprovarà si la cel·la C5 conté algun valor o no.
- En tercer lloc, D5="” és la 3a lògica. De la mateixa manera, que comprovarà si la cel·la D5 conté algun valor o no.
Ara, la funció SI retorna el resultat que complirà una condició determinada. .
- Quan la funció OR dóna TRUE , obtindreu " Info falta " com a Estat . En cas contrari, obtindreu " Fet " com a Estat .
- Després, haureu d'arrossegar el Mànec d'emplenament per a Emplenar automàticament les dades corresponents a la restales cel·les E6:E13 . O podeu fer doble clic a la icona Emplenar mànec .
Finalment, obtindreu tots els resultats. .
3. Utilitzar la funció SUMIFS per crear un bucle FOR a Excel
Suposem que voleu fer la factura total per a una determinada persona. En aquest cas, podeu utilitzar el bucle FOR amb la fórmula d'Excel. Aquí, utilitzaré la funció SUMIFS per crear el bucle FOR a Excel. Els passos es donen a continuació.
Passos:
- Primer, heu de seleccionar una cel·la diferent F7 on voleu veure l' Estat .
- En segon lloc, hauríeu d'utilitzar la fórmula corresponent a la cel·la F7 .
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- A continuació, premeu INTRO per obtenir el resultat.
Desglossament de la fórmula
- Aquí, $C$5:$C$13 és l'interval de dades a partir del qual SUMIFS La funció farà la suma.
- A continuació, $B$5:$B$13 és l'interval de dades des d'on la funció SUMIFS comprovarà els criteris donats
- Per últim, E7 és el criteri.
- Per tant, la funció SUMIFS afegirà els pagaments pel valor de la cel·la E7 .
- Després d'això, haureu d'arrossegar la icona Emplenar mànec per Emplenament automàtic de les dades corresponents a la resta de cel·les F8:F10 .
Finalment, obtindreu el resultat.
Conclusió
Esperem queha trobat útil aquest article. Aquí hem explicat 3 exemples adequats per fer FOR Loop a Excel mitjançant fórmules. Podeu visitar el nostre lloc web Exceldemy per obtenir més informació sobre contingut relacionat amb Excel. Si us plau, deixeu comentaris, suggeriments o consultes si en teniu a la secció de comentaris de sota.