Moja je preporuka da sa strane napraviš pomoćnu kakulaciju
po tabelama. Na taj način moćićeš da pratiš da li je rezultat tačan - da nije došlo do neke greške.
Ja sam u prilogu krenuo od Q1 - tu upišeš "Tab_1" i onda sa autofill popuniš desno do "Tab_32"
Za tu pomoćnu kalkulaciju koristiš otprilike formulu koju si naveo za kod (VLOOKUP i INDIRECT) Znači u Q2 upišeš:
Code:
=IFNA(VLOOKUP($D2;INDIRECT(Q$1);4;FALSE);"")
VLOOKUP je uokviren za IFNA, da u slučaju da nije nađen kod vrati prazan string.
Kopiraš ovu formulu za celu oblast (Q2:AV134)
Kad imaš ove kalkulacije potrebno je da iz jednog reda (od kolone Q do AV) izvučeš samo neprazne ćelije i prepišeš ih u kolone F, G i H. To je moguće na dva načina
1/ Pomoću Array formule. Upišeš u F2:
Code:
=IFERROR(INDEX($Q2:$AV2;SMALL(IF(($Q2:$AV2)<>"";COLUMN($A$1:$AF$1);"");COLUMN(A$1)));"")
Završiš sa
CTRL+Shift+Enter!
Kopraš desno go H pa nadole do 134 reda
2/ Umesto ove komplikovane formule napraviš svoju korisničku funkciju UDF. Da bi funkcija bila univerzalnije (da može da se iskoristi još negde) ja sam zamislio da funkcija vraća n-ti neprazan podatak iz opsega
Code:
Public Function NonBlankFromRange(rng As Range, n As Long) As String
' Funkcija koja iz zadatog opsega rng
' vraca sadrzaj n-te celije koja nije prazna
' P. Jovanovic za elitesecurity.org
Dim cl As Variant ' current cell
Dim i As Long
i = 0
NonBlankFromRange = ""
For Each cl In rng ' Petlja po zadatom osegu
If cl.Text <> "" Then
i = i + 1 ' brojac
If i >= n Then ' Ako je zadovoljen uslov nadjeno je sta treba
NonBlankFromRange = cl.Text
Exit For ' Izlazak iz petlje
End If
End If
Next cl
End Function
Ovu funkciju primeniš u kolonama F, G, H kao i svaku drugu funkciju. U F2 upišeš:
Code:
=NonBlankFromRange($Q2:$AV2;RIGHT(F$1;1))
Pa kopiraš desno i dole. Funkciju RIGHT sam koristio da izvučem n (1, 2 ili 3). Naravno može i direktno da se upiše.
Napomena. Makroi moraju biti omogućeni da ovo rad. Ako ovu funkciju hoćeš da koristiš u drugim sveskama [napravi AddIn|
https://www.myonlinetraininghu...or-user-defined-functions-udfs] dodaj u taj Add-In ovu funkciju (i druge sopstvene) pa uključi taj Add In
Napomena2. Ako hoćeš da se baviš VBA napravi poboljšanje ove funkcije da parametar n bude opcioni, ako se ne navede da uzima 1.
Nije to loše Rembrante, samo što ne bi dodao još malo boje?