2013. március 15., péntek

Excel oszlopokból sorok


Aki dolgozott már marketing címlistával, annak ismerős lehet a következő helyzet. Tegyük fel, hogy Ön vásárolt/letöltött egy címlistát, ahol a címzett kapcsolati adatainál több elérhetőséget (Telefon 1, Telefon 2, E-mail 1, E-mail 2, ...) is megadtak, mindezeket külön oszlopokban.

Klikk a képre a nagyobb méretért!

Elképzelhető, hogy nekünk valamilyen ok folytán ez a formátum nem megfelelő (pl. a marketing adatbázisunk tábláinak belső felépítése miatt), és szeretnénk az oszloponkénti megjelenítést átkonvertálni úgy, hogy ezek az információk soronként jelenjenek meg.

Mik a lehetőségeink, ha mindezt Excel-ben szeretnénk megtenni? A jó hír, hogy megoldható. Az Excel klasszikus kimutatás varázslóját fogjuk erre a célra használni. Az Excel 2007-es verziójától kezdődően ez a funkció alapból nem elérhető a szalagon, vagy a gyorselérési eszköztáron, de az alábbi módszerrel elérhetővé tehetjük.

Menjünk a Fájl fülre, ott válasszuk a Beállítás menüpontot.

Klikk a képre a nagyobb méretért!
Válasszuk a 'Gyorselérési eszköztár' menüpontot. Ezután a 'Választható parancsok helye' legördülő menüből válasszuk a 'A menüszalagon nem szereplő parancsok' értéket, majd az alatta lévő listában görgessünk a 'Kimutatás és kimutatásdiagram varászló' értékhez. Nyomjuk meg a 'Felvétel > >' gombot.

Klikk a képre a nagyobb méretért!


Kattintsunk az újonnan felkerült ikonra, majd a megjelenő képernyőn váltsunk a 'Több tartomány (összesítés)' opcióra.

Klikk a képre a nagyobb méretért!

Klikk a képre a nagyobb méretért!

Adjuk meg az adattartományt, amin végre szeretnénk hajtani a transzformációt, majd nyomjuk meg a 'Hozzáadás' gombot.

Klikk a képre a nagyobb méretért!

 Egy kimutatást kaptunk eredményül, ahol kattintsunk bele jobb alsó sarokban található Végösszeg cellába.

Klikk a képre a nagyobb méretért!

Az alábbi listát kapjuk eredményül, ahol utána az 'Érték' (C oszlop) mezőben rászűrve a nem üres cellákra megkapjuk a kívánt listát.

Klikk a képre a nagyobb méretért!


2013. március 8., péntek

Hónap első és utolsó napja

A hónap kezdő és végdátumának meghatározása különböző alkalmazásokban:

PL/SQL (ORACLE):

Aktuális hónap első napja:
trunc(sysdate, 'month') vagy trunc(sysdate, 'MM')

Aktuális hónap utolsó napja:
last_day(sysdate)

Egyéb:

 Az év első napja:
 trunc(sysdate, 'year')

 2 hónap múlva:
 add_months(sysdate, 2)



T-SQL:

Aktuális hónap első napja:
DATEADD(m, DATEDIFF(m,0,getdate() ), 0)

Aktuális hónap utolsó napja:
DATEADD(ms,-3,DATEADD(m, DATEDIFF(m,0,getdate() )+1, 0))

Előző év azonos hónapjának első napja:
DATEADD(m, DATEDIFF(m,0,getdate() )-12, 0)

Előző év azonos hónapjának utolsó napja:
DATEADD(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate() )-11 , 0))

Év első és utolsó napja:
Select DATEFROMPARTS(year(getdate()),1,1) Datum_ev_elso_napja
     , DATEFROMPARTS(year(getdate()),12,31) Datum_ev_utolso_napja

select DATEtimeFROMPARTs(year(getdate())-1,1,1,0,0,0,0) DatumIdo_tavaly_elso_napja
     , DATEtimeFROMPARTs(year(getdate())-1,12,31,23,59,59,997) DatumIdo_tavaly_utolso_napja

Egyéb:

 Szövegként megadott dátum átalakítása:
 CONVERT(DATETIME,'19980101',101)

 Rendszerdátum előtt 2 nap:
 DATEADD(d, 0, DATEADD  (d, -2, getdate() ))



Report Builder (SSRS):

Aktuális hónap első napja:
=DateSerial(DatePart("yyyy",today()),DatePart("m",today()),1)

Aktuális hónap utolsó napja:

=DateAdd(DateInterval.Day,-1, DateAdd(DateInterval.Month,1, DateSerial(DatePart("yyyy",today()),DatePart("m",today()),1)))

Előző hónap első napja:
=DateSerial(DatePart("yyyy",today()),DatePart("m",today())-1,1)

Előző hónap utolsó napja:
=DateAdd(DateInterval.Day,-1, DateAdd(DateInterval.Month,1, DateSerial(DatePart("yyyy",today()),DatePart("m",today())-1,1)))