Verovatno je moguće i pomoću formula ali imaš dva rešenja koja su jednostavnija
A. Jedno relativno jednostavno rešenje je napraviti rutinu u VBA koja to odrađuje. Prolazi se red po red početne tabel i onda uzimaju prve dve po pet kolona iza treće i prepisuju u novu tabelu.
Kod nije komplikovan, dodao sam objašnjenja u samom kodu - vidi radnu svesku u prilogu
Da probaš makroi moraju da budu dozvoljeni u radnoj svesci.
1/ Obriši sadržaj ispod zaglavlja na listu DemoVBA (Zaglavlje ručno formirati gde treba, ne formira se u rutini)
2/ Prebaci se na list PRIMER
3/ Alt+F8, Test da startuješ makro
4/ U prvom dijalogu selektuj oblast A2:Q24 na listu primer
5/ U drugom dijalogu selektuj A2 na listu DemoVBA
B. Drugo rešenje je korišćenjem alata Get & Trasform (u Excel 2016), ranije poznatog kao Power Query. Na forumu koliko ja znam nije bilo mnogo govora o ovom alatu. Osnovna njegova primena je da se u Excel uvuku podaci iz eksternih fajlova ili baze podataka, međutim moguće je kao izvor izabrati tabelu u Excelu, pa tako ovaj alata koristi za razičite pretumbacije.
Kroz ovaj alat svaki korak transformacije se snima i kasnije se jedonstavno može pozvati ceo niz. Tokom rada imaš vizalni prikaz rezultata. Ako nešto pogrešiš obrišeš zadnji korak pa ponovo.
Osnova ideja u tvom slučaju da se iskoriste Unpivot i Pivot alatke za to što ti treba. Obrati pažnju da je za primenu Pivot bitno da postoji jedinstvana kombinacija u ostatku reda (koji se ne pivotuje) Kako kod tebe dobavljač i broj otpremnice nisu jedinstveni dodata je kolona sa brojačem kako bi napravila jedinstvena kombinacija.
Prethodno sam sredio nazive kolona da bi bilo lakše i jasnije - nazivi kolona su bitni za pivot.
Snimio sam postupak u priloženom videu.
Rezime postupka:
0/ Nazive kolona stavio da budu po "sekcijama" Dan1, Mes1...Iznos1, Dan2, Mes2...Iznos2 itd.
1/ Aktiviraš Data, Get i Transform sekcija > From Table. Istu alatku u prethodnoj verziji Excela naći ćeš u Power Query tab-u. Alat će izvori opseg pretvoriti u tabelu ako već nije - mora da bude tabela.
2/ Unutar alata kora po korak
2-1/ Uradio Unpivot za sve kolone osim prve dve. Sad su nazivi prešli u kolonu Attribute a vrednosti u Value.
2-2/ Izbacio red gde nema broj otpreminice (null) i iznos. Ovaj red pravi problem a ne znam da li treba
2-3/ Formirao novu kolonu za budućim nazivima kolona - skinuo broj sa kraja Dan, Mes ... Formula: Text.Start([Attribute], Text.Length([Attribute])-1)
2-4/ Izbacio stare nazive kolona (Attribute)
2-5/ Dodao indeksnu kolonu na osnovu koje ću formirati brojač (vidi gore)
2-6/ Dodao novu kolonu sa formulom za brojač. Forumla celobrojno deljenje indeksa sa 5: Number.IntegerDivide([Index],5)
2-7/ Obrisao indeksnu kolonu - ne treba
2-8/ Stavio brojac kolonu na početak zbog preglednosti
2-9/ Uradio Pivot po koloni ColName za vrednosti u Value koloni - nema agregiranja
Sad smo prebacili vrednosti u odgovarajuće koloen Dan, Mes, ....Iznos
2-10/ Na kraju obrišemo Brojac kolonu kao višak
2-11/ Rezultat prebacimo u Excel - novi list
3/ Kad se izmene podaci u izvornoj tabeli, dovoljnoj je desni klik Refresh na odredišnu tabelu da se osveži sa novim podacima, ceo postupak će se automatki ponoviti
[Ovu poruku je menjao Jpeca dana 05.04.2018. u 16:08 GMT+1]
Nije to loše Rembrante, samo što ne bi dodao još malo boje?