» »

[Excel] Gnezdenje več kot 9 IF stavkov s pomočjo VB kode

[Excel] Gnezdenje več kot 9 IF stavkov s pomočjo VB kode

adinfinito ::

Torej, zagate so postale ko nisem mogel gnezdit dalje IF stavkov:

=IF(AND(ROWS(A$2:A2)<=$T$9;$R$9="OK");INDEX(INDIRECT("'"&$O$9&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT ("'"&$O$9&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$9&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$9&"'!$H$6"))+1);(ROWS(A$2:A2)));1);
IF(AND(ROWS(A$2:A2)<=$T$10;$R$10="OK");INDEX(INDIRECT("'"&$O$10&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$10&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$10&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$10&"'!$H$6"))+1);(ROWS(A$2:A2)-$T$9));1);
IF(AND(ROWS(A$2:A2)<=$T$11;$R$11="OK");INDEX(INDIRECT("'"&$O$11&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$11&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$11&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$11&"'!$H$6"))+1);(ROWS(A$2:A2)-$T$10));1);
.
.
.
"")))


Mislim, da boste hitro ugotovili vzorec. Tole zadevo moram gnezdit še najmanj 25 krat, ampak ne gre več kot 3 (oz 6).
Kakšne so ideje za dokončanje tega? Mogoče preko VBA?
Any ideas on how I could get it accomplished? Maybe through VBA?

Upam, da je kdo na tem forumu, ki lahko to "cracka" :)

iggy ::

če moraš tako gnezdit, nekaj delaš narobe
Hey, you're fat!

FlashM ::

če moraš tako gnezdit, nekaj delaš narobe


hehe, totally agree with that :-)
Simple solutions are usually best!

adinfinito ::

Ni kaj, hitri ste.

Demonstracija problema:

Z listov A B in C hočem imeti postavke ki so označene z x. Te postavke se združijo v listu List z kodo.

List z kodo    SheetA x         Sheet B              Sheet C x           ......
Sheet A R2            Row 1            Row 1                Row 1 x
Sheet A R5            Row 2 x          Row 2                Row 2 
Sheet C R1            Row 3            Row 3                Row 3 x
Sheet C R3            Row 4            Row 4                Row 4 x
Sheet C R4            Row 5 x          Row 5                Row 5 


Zadeva mora bit dinamična. Če se doda novi list z kategorijami ki jih hočem mora ta prit noter v enoten seznam.

Koda ki sem jo prej prilepil

=IF(AND(ROWS(A$2:A2)<=$T$9;$R$9="OK");INDEX(INDIRECT("'"&$O$9&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$9&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$9&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$9&"'!$H$6"))+1);(ROWS(A$2:A2)));1);
IF(AND(ROWS(A$2:A2)<=$T$10;$R$10="OK");INDEX(INDIRECT("'"&$O$10&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$10&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$10&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$10&"'!$H$6"))+1);(ROWS(A$2:A2)-$T$9));1);
IF(AND(ROWS(A$2:A2)<=$T$11;$R$11="OK");INDEX(INDIRECT("'"&$O$11&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$11&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$11&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$11&"'!$H$6"))+1);(ROWS(A$2:A2)-$T$10));1);"")))


se nadaljuje v spodnji celici tako:

=IF(AND(ROWS(A$2:A3)<=$T$9;$R$9="OK");INDEX(INDIRECT("'"&$O$9&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$9&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$9&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$9&"'!$H$6"))+1);(ROWS(A$2:A3)));1);
IF(AND(ROWS(A$2:A3)<=$T$10;$R$10="OK");INDEX(INDIRECT("'"&$O$10&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$10&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$10&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$10&"'!$H$6"))+1);(ROWS(A$2:A3)-$T$9));1);
IF(AND(ROWS(A$2:A3)<=$T$11;$R$11="OK");INDEX(INDIRECT("'"&$O$11&"'!$A$6:$H$250");SMALL(IF(NOT(INDIRECT("'"&$O$11&"'!$H$6:$H$250")="");ROW(INDIRECT("'"&$O$11&"'!$H$6:$H$250"))-ROW(INDIRECT("'"&$O$11&"'!$H$6"))+1);(ROWS(A$2:A3)-$T$10));1);"")))



[URL="http://i46.tinypic.com/2nl7h9e.jpg"]htt...

Če bi kdo znal rešit moj problem mu lahko tudi dam celoten Excel.

Zgodovina sprememb…

dfajt ::

Zdaj pa, če prav razumem problem.
Imaš nekaj listov (npr. A, B, C, ...) in list, kamor pišeš rezultate.
Če je v vrstici na listu A (B, C, ...) napisan X, potem številko vrstice napišeš med rezultate.
Narediš dve for zanki: eno po listih (A - zadnji list), drugo po vrsticah v tem listu.
Če je v vrstici napisan X, potem vsebino (številko ali kar pač) vrstice vpiši na list z rezultati.
Pri rezultatih povečaj vrstico za ena.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

kompleksna števila

Oddelek: Šola
131614 (1292) FrRoSt
»

Pomoč pri kvadratni f-ji

Oddelek: Šola
101506 (1222) ne_vem
»

Ekstremalni problem

Oddelek: Šola
151889 (1560) fifika
»

Excel - datum

Oddelek: Pomoč in nasveti
72229 (2159) iMark
»

IP - > numeric???

Oddelek: Omrežja in internet
241368 (1126) DeViCeD

Več podobnih tem