Forum » Pomoč in nasveti » Makro v Excelu
Makro v Excelu
[SpydeR] ::
V Excelu imamo tabelo, v katero mesečno vstavljamo po en stolpec s podatki. En od izračunov na osnovi teh podatkov je letna primerjava med meseci tekočega leta (Vsota podatkov po mesecih YTD) in meseci preteklega leta. Tako se formula raztegne z vsakim vstavljenim stolpcem do 12. vstavljanja in se nato začne znova od začetka (od primerjave jan/jan do (jan:dec)/(jan:dec)). Kako bi izgledal makro, ki bi ob vsakem vstavljanju spremenil formulo na naslednji korak in se po 12. vrnil na izhodiščnega?
Stolpec vstavljamo z:
Koraki formule za primerjavo YTD:
01. ((SUM(RC[-5])/(RC[-17]))*100
02. (SUM(RC[-6]:RC[-5]))/(SUM(RC[-18]:RC[-17]))*100
03. (SUM(RC[-7]:RC[-5]))/(SUM(RC[-19]:RC[-17]))*100
04. (SUM(RC[-8]:RC[-5]))/(SUM(RC[-20]:RC[-17]))*100
05. (SUM(RC[-9]:RC[-5]))/(SUM(RC[-21]:RC[-17]))*100
06. (SUM(RC[-10]:RC[-5]))/(SUM(RC[-22]:RC[-17]))*100
07. (SUM(RC[-11]:RC[-5]))/(SUM(RC[-23]:RC[-17]))*100
08. (SUM(RC[-12]:RC[-5]))/(SUM(RC[-24]:RC[-17]))*100
09. (SUM(RC[-13]:RC[-5]))/(SUM(RC[-25]:RC[-17]))*100
10. (SUM(RC[-14]:RC[-5]))/(SUM(RC[-26]:RC[-17]))*100
11. (SUM(RC[-15]:RC[-5]))/(SUM(RC[-27]:RC[-17]))*100
12. (SUM(RC[-16]:RC[-5]))/(SUM(RC[-28]:RC[-17]))*100
Stolpec vstavljamo z:
Sub AnalizaTEST()
Cells.Find(what:="Sales Units", After:=ActiveCell, LookIn:=xlFormulas, lookat _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Cells.Find(what:="CP/R1", After:=ActiveCell, LookIn:=xlFormulas, lookat _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Koraki formule za primerjavo YTD:
01. ((SUM(RC[-5])/(RC[-17]))*100
02. (SUM(RC[-6]:RC[-5]))/(SUM(RC[-18]:RC[-17]))*100
03. (SUM(RC[-7]:RC[-5]))/(SUM(RC[-19]:RC[-17]))*100
04. (SUM(RC[-8]:RC[-5]))/(SUM(RC[-20]:RC[-17]))*100
05. (SUM(RC[-9]:RC[-5]))/(SUM(RC[-21]:RC[-17]))*100
06. (SUM(RC[-10]:RC[-5]))/(SUM(RC[-22]:RC[-17]))*100
07. (SUM(RC[-11]:RC[-5]))/(SUM(RC[-23]:RC[-17]))*100
08. (SUM(RC[-12]:RC[-5]))/(SUM(RC[-24]:RC[-17]))*100
09. (SUM(RC[-13]:RC[-5]))/(SUM(RC[-25]:RC[-17]))*100
10. (SUM(RC[-14]:RC[-5]))/(SUM(RC[-26]:RC[-17]))*100
11. (SUM(RC[-15]:RC[-5]))/(SUM(RC[-27]:RC[-17]))*100
12. (SUM(RC[-16]:RC[-5]))/(SUM(RC[-28]:RC[-17]))*100
smetko ::
To lahko rešiš brez makrojev, samo z funkcijo offset (index)
primer:
Na listu1 imaš v prvi vrstici imena mesecev, pod njimi pa podatke
Na listu2 imaš v:
a1=mesec začetka (številka meseca 1=januar,2=februar,...)
b1=mesec konca (velja enako kot za mesec-začetka)
c1 =ROWS(A:A)-1 -->če želiš po celi koloni, če ne max število vrstic
katerakoli ostala celica =SUM(OFFSET(List1!A1;1;A1-1;C1;B1-A1+1))
ta formula ti izračuna vsoto vseh števil v ubmočju od mesec-začetk do mesec-konca.
Lahko si pa še pogledaš funkcijo index.
primer:
Na listu1 imaš v prvi vrstici imena mesecev, pod njimi pa podatke
Na listu2 imaš v:
a1=mesec začetka (številka meseca 1=januar,2=februar,...)
b1=mesec konca (velja enako kot za mesec-začetka)
c1 =ROWS(A:A)-1 -->če želiš po celi koloni, če ne max število vrstic
katerakoli ostala celica =SUM(OFFSET(List1!A1;1;A1-1;C1;B1-A1+1))
ta formula ti izračuna vsoto vseh števil v ubmočju od mesec-začetk do mesec-konca.
Lahko si pa še pogledaš funkcijo index.
No comment
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Ekvalizacija na intervalu - iščem genialne idejeOddelek: Programiranje | 1212 (1081) | dunker |
» | Mount read-only JE ali NI read only?Oddelek: Programska oprema | 2323 (2133) | poweroff |
» | [Excel] problem z makrojem, visual basic (strani: 1 2 )Oddelek: Programiranje | 5601 (5064) | steev |
» | Skripte (strani: 1 2 )Oddelek: Programiranje | 8664 (6527) | Microsoft |
» | redhat 8.0 zamrzne pri instalacijiOddelek: Operacijski sistemi | 1302 (1070) | medjugorje-si |