Преглед садржаја
Зар не желите да користите Екцел ВБА и желите да направите ФОР петљу у Екцел-у користећи формулу? У овом чланку сам показао како можете да направите ФОР петљу користећи формуле.
Ако знате како да кодирате помоћу Екцел-а ВБА , благословени сте 🙂 . Али, ако никада нисте написали код у ВБА или желите да ваша Екцел радна свеска буде без Екцел ВБА кода, онда већину времена морате да размишљате ван оквира да бисте креирали симпле петља .
Преузмите радни фајл
Преузмите радни фајл са доње везе:
Направите петљу користећи формуле. клск3 примера за прављење петље ФОР у Екцел-у користећи формулу
Овде ћу демонстрирати 3 примере да направите ФОР петљу у Екцел-у користећи формула. Хајде да видимо детаљне примере.
1. Примена комбинованих функција за прављење ФОР петље у Екцел-у
Сада ми реците позадину која ме охрабрује да напишем овај пример.
Ја сам аутор неких курсева о Удеми. Један од курсева је о Екцел условном форматирању. Назив курса је: Научите Екцел условно форматирање са 7 практичних проблема. [ да бисте добили бесплатан приступ овом курсу, кликните овде ].
На дискусијској табли курса , ученик ми је поставио питање као испод [слика екрана].
Питање које је поставио студент у Удеми-у.
Пажљиво прочитајте горње питање и покушајте да га решите...
Кораци за решавање горњег проблема:
Ево, јакористиће функције ОР , ОФФСЕТ , МАКС , МИН и РОВ као Екцел формулу за креирање ФОР Лооп .
- Прво, ваш посао је да отворите нову радну свеску и унесете горе наведене вредности једну по једну у радни лист [почните од ћелије Ц5 ] .
- Друго, изаберите цео опсег [из ћелије Ц5:Ц34 ].
- Треће, са траке Почетна &гт;&гт; кликните на команду Условно форматирање .
- На крају, изаберите опцију Ново правило из падајућег менија.
У овом тренутку се појављује оквир за дијалог Ново правило за форматирање .
- Сада, у прозору Изаберите тип правила &гт;&гт ; изаберите Користите формулу да одредите које ћелије да форматирате опцију.
- Затим, у поље Форматирај вредности где је ова формула тачна унесите ову формулу:
=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)
- Сада изаберите одговарајући тип формата кликом на дугме Формат… у оквиру за дијалог.
У овом тренутку ће се појавити оквир за дијалог под називом Формат Целлс .
- Сада, из Попуни опција &гт;&гт; морате одабрати било коју од боја. Овде сам изабрао Светлоплаву позадину. Такође, можете одмах видети узорак . У овом случају, покушајте да изаберете било коју светлу боју. Јер тамна боја може сакрити унете податке. Затим ћете можда морати да промените Боја фонта .
- Затим морате да притиснете ОК да примените формацију.
- Након тога, морате да притиснете ОК на Ново правило форматирања дијалог. Овде можете одмах видети узорак у пољу Преглед .
На крају ћете добити форматиране бројеве.
Дозволите ми да вам покажем алгоритам за решавање горњег проблема:
- Овде, да бисте лакше разумели алгоритам, ја ћу објасните целу ствар са две референтне ћелије: ћелије Ц11 и Ц17 . У ћелијама Ц11 и Ц17 , вредности су 10 и 20 респективно (изнад слике). Ако сте навикли на Екцел формуле, можете намирисати функцију ОФФСЕТ , јер функција ОФФСЕТ ради са референтним тачкама.
- Сада, замислите да узимам вредности опсега ћелија Ц8:Ц11 &амп; Ц11:Ц14 и Ц14:Ц17 &амп; Ц17: Ц20 један поред другог [слика испод]. Референтне ћелије су Ц11 и Ц17 и узимам укупно 7 ћелија око референтне ћелије. Добићете замишљену слику попут следеће. У првом делу можете пронаћи шаблон са слике. Ц9–Ц12=3 , Ц10-Ц13=3 , постоји шаблон. Али за други део, не постоји такав образац.
- Дакле, хајде да направимо алгоритам имајући на уму горњи образац. Пре него што направим заједничку формулу, показаћу шта ће бити формуле заћелије Ц11 и Ц17 , а затим ће модификовати формулу да би била заједничка за све. За референтну тачку (као што је Ц11 или Ц17 ), узећу укупно 7 ћелија око ње (укључујући референтну тачку) и поставити их једну поред друге страну у формули која ствара низове. Затим ћу сазнати разлику низова ако је било која од разлика једнака 3 да ће референтна ћелија бити вреднована ТРУЕ .
- Овде могу урадите то лако користећи функцију ОФФСЕТ јер функција ОФФСЕТ враћа низ. Рецимо за референцу ћелије Ц11 , могу написати формулу овако: =ОР(ОФФСЕТ(Ц11, 0, 0, 4, 1)-ОФФСЕТ(Ц11, -3, 0, 4, 1)=3) . Шта ће ова формула вратити? Прва функција померања формуле ће вратити низ: {10; 11; 12; 15} , друга функција померања ће вратити низ {5; 8; 9; 10} . И знате {10; 11; 12; 15} – {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} . Када се овај низ логички тестира са =3 онда Екцел интерно израчунава овако: {5=3; 3=3; 3=3; 5=3} = {Нетачно; Истинито; Истинито; Нетачно . Када се функција ОР примени на овај низ: ОР({Фалсе; Труе; Фалсе; Труе} , добијате ТРУЕ . Дакле, ћелија Ц11 добија праве вредности као враћене.
- Дакле, мислим да имате цео концепт како ће овај алгоритам функционисати. Сада постоји проблем. Ова формула може да функционише одћелија Ц8 , изнад ћелије Ц8 , налазе се 3 ћелије. Али за ћелије Ц5, Ц6, и Ц7 ова формула не може да функционише. Дакле, формулу треба модификовати за ове ћелије.
- Сада, за ћелије Ц5 до Ц7 , желимо да формула не узима у обзир горњи 3 ћелије. На пример, за ћелију Ц6 , наша формула неће бити као формула за ћелију Ц11 : =ОР(ОФФСЕТ(Ц11, 0, 0, 4, 1)- ОФФСЕТ(Ц11, -3, 0, 4, 1)=3) .
- Овде, за ћелију Ц5 , формула ће бити као: ОР(ОФФСЕТ (Ц5, 3, 0, 1, 1)-ОФФСЕТ(Ц5, 0, 0, 1, 1)=3) .
- Онда, за ћелију Ц6 , формула ће бити као: ИЛИ(ОФФСЕТ(Ц6, 2, 0, 2, 1)-ОФФСЕТ(Ц6, -1, 0, 2, 1)=3) .
- Након да ће за ћелију Ц7 , формула бити као: ИЛИ(ОФФСЕТ(Ц7, 1, 0, 3, 1)-ОФФСЕТ(Ц7, -2, 0, 3, 1)= 3) .
- Опет, за ћелију Ц8 , формула ће бити као: ИЛИ(ОФФСЕТ(Ц8, 0, 0, 4, 1)-ОФФСЕТ( Ц8,-3, 0, 4, 1)=3) ; [ово је општа формула].
- Онда, за ћелију Ц9 , формула ће бити као: ИЛИ(ОФФСЕТ(Ц9, 0, 0, 4, 1)- ОФФСЕТ(Ц9,-3, 0, 4, 1)=3) ; [ово је општа формула].
- Коначно, да ли сте пронашли неке обрасце из горњих формула? Аргумент редова прве функције ОФФСЕТ смањен је са 3 на 0 ; аргумент висине је повећан са 1 на 4 . Аргумент редова друге функције ОФФСЕТ је смањен од 0 на -3 и аргумент висине је повећан са 1 на 4 .
- Прво, први <1 Аргумент редова функције>ОФФСЕТ биће модификован овако: МАКС(РОВ(Ц$5)-РОВ(Ц5)+3,0)
- Друго, други Аргумент редова функције ОФФСЕТ биће измењен овако: МАКС(РОВ(Ц$5)-РОВ(Ц5),-3)
- Треће, први ОФФСЕТ аргумент висине функције ће бити модификован овако: МИН(РОВ(Ц5)-РОВ(Ц$5)+1,4)
- Четврто, други ОФФСЕТ аргумент висине функције ће бити измењен овако: МИН(РОВ(Ц5)-РОВ(Ц$5)+1,4)
- Сада покушајте да разумете горњу модификацију. Ово није тако тешко разумети. Све ове четири модификације раде као ФОР ЛООП Екцел ВБА, али сам их направио са Екцел формулама.
- Дакле, добили сте начине на које општа формула ради за ћелије из Ц5:Ц34 .
Тако да сам говорио о петљи у Екцел табелама. Дакле, ово је савршен пример петље у Екцел-у. Овде, сваки пут када формула узме 7 ћелија и ради на ћелијама да би сазнала одређену вредност.
2. Употреба ИФ &амп; ИЛИ функције за креирање петље ФОР у Екцел-у
У овом примеру, претпоставимо да желите да проверите да ли ћелије садрже било коју вредност или не. Штавише, помоћу Екцел ВБА ФОР петље, то можете лако да урадите, али овде ћу то урадити користећи Екцел формулу.
Сада можете да користите ИФ и ИЛИ функционише као Екцел формула за креирање ФОР петље . Штавише, ову формулу можете модификовати према вашим жељама. Кораци су дати у наставку.
Кораци:
- Прво, морате да изаберете другу ћелију Е5 где желите да видите Статус .
- Друго, требало би да користите одговарајућу формулу у ћелији Е5 .
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- Након тога, притисните ЕНТЕР да бисте добили резултат.
Рашчламба формуле
Овде ће функција ИЛИ вратити ТРУЕ ако било која од датих логика постане ТРУЕ .
- Прво, Б5=”” је 1. логика, која ће проверити да ли ћелија Б5 садржи било вредност или не.
- Друго, Ц5=”” је 2нд логика, која ће проверити да ли ћелија Ц5 садржи било коју вредност или не.
- Треће, Д5=”” је 3. логика. Слично томе, која ће проверити да ли ћелија Д5 садржи било коју вредност или не.
Сада, функција ИФ враћа резултат који ће испунити дати услов .
- Када функција ИЛИ даје ТРУЕ онда ћете добити „ Инфо Миссинг ” као Статус . У супротном, добићете „ Готово ” као Статус .
- Након тога, морате да превучете ручицу за попуњавање икона за Аутоматско попуњавање одговарајућих података у остаткућелије Е6:Е13 . Или можете двапут да кликнете на икону Ручица за попуњавање .
Коначно ћете добити све резултате .
3. Коришћење функције СУМИФС за креирање петље ФОР у Екцел-у
Претпоставимо да желите да извршите укупан рачун за одређену особу. У том случају можете да користите ФОР петљу помоћу Екцел формуле. Овде ћу користити функцију СУМИФС да направим ФОР петљу у Екцел-у. Кораци су дати у наставку.
Кораци:
- Прво, морате да изаберете другу ћелију Ф7 где желите да видите Статус .
- Друго, требало би да користите одговарајућу формулу у ћелији Ф7 .
=SUMIFS($C$5:$C$13,$B$5:$B$13,E7)
- Након тога, притисните ЕНТЕР да бисте добили резултат.
Рашчламба формуле
- Овде, $Ц$5:$Ц$13 је опсег података из којег је СУМИФС функција ће извршити сумирање.
- Онда, $Б$5:$Б$13 је опсег података одакле ће функција СУМИФС проверити дате критеријуме
- На крају, Е7 је критеријум.
- Дакле, функција СУМИФС ће додати уплате за вредност ћелије Е7 .
- Након тога, морате да превучете икону Ручица за попуњавање да бисте аутоматски попунили одговарајуће податке у остатку ћелија Ф8:Ф10 .
Коначно ћете добити резултат.
Закључак
Надамо се да ћетесматрао да је овај чланак био користан. Овде смо објаснили 3 погодне примере за прављење ФОР петље у Екцел-у помоћу формула. Можете посетити нашу веб локацију Екцелдеми да бисте сазнали више садржаја везаних за Екцел. Оставите коментаре, предлоге или упите ако их имате у одељку за коментаре испод.