» »

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:

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.
No comment


Vredno ogleda ...

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

Ekvalizacija na intervalu - iščem genialne ideje

Oddelek: Programiranje
51209 (1078) dunker
»

Mount read-only JE ali NI read only?

Oddelek: Programska oprema
142318 (2128) poweroff
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585595 (5058) steev
»

Skripte (strani: 1 2 )

Oddelek: Programiranje
508646 (6509) Microsoft
»

redhat 8.0 zamrzne pri instalaciji

Oddelek: Operacijski sistemi
241299 (1067) medjugorje-si

Več podobnih tem