2017. január 26., csütörtök

SQL sorok összefűzése egy mezőbe FOR XML PATH segítségével


Ha az SQL-es táblában az értékek különböző sorokban vannak eltárolva, amit szeretnénk összefűzni egy mezőbe (pl. riporton helytakarékosság, felhasználóbarát formátum céljából), akkor arra több módszer is használható.

MySQL esetében erre külön függvény található: GROUP_CONCAT()
Oracle esetében: LISTAGG()
PostgreSQL esetében szintén van erre függvény: STRING_AGG()

Az MS SQL Server-en szokás szerint nincs ilyen egyszerű dolgunk. :) Az egyik leggyakoribb megoldás, amikor a FOR XML PATH-t használjuk.


1.   Ha egy táblán belül van az a mező, amire csoportosítani kell, és az a mező, amelynek értékeit össze kell fűznünk:

CREATE TABLE #Tabla
(
  Kategoria    varchar(20),
  Alkategoria varchar(20)
)

INSERT INTO #Tabla (Kategoria, Alkategoria) VALUES ('Kerékpár', 'verseny');
INSERT INTO #Tabla (Kategoria, Alkategoria) VALUES ('Kerékpár', 'túra');
INSERT INTO #Tabla (Kategoria, Alkategoria) VALUES ('Kerékpár', 'mountain bike');
INSERT INTO #Tabla (Kategoria, Alkategoria) VALUES ('Alkatrész', 'nyereg');
INSERT INTO #Tabla (Kategoria, Alkategoria) VALUES ('Alkatrész', 'pedál');

SELECT Kategoria,
       STUFF((SELECT ',' + t2.Alkategoria AS [text()] 
                FROM #Tabla t2 
               WHERE t2.Kategoria = t1.Kategoria 
                 FOR XML PATH('') ), 1, 1, '') Alkategoria
  FROM #Tabla t1
 GROUP BY Kategoria

DROP TABLE #Tabla



2.   Ha külön táblában vannak az összefűzendő értékek:

CREATE TABLE #Fej
(
  fej_id  int,
  fej_nev varchar(20)
)

INSERT INTO #Fej (fej_id, fej_nev) VALUES (1, 'Kerékpár');
INSERT INTO #Fej (fej_id, fej_nev) VALUES (2, 'Alkatrész');

CREATE TABLE #Tetel
(
  tetel_id  int,
  fej_id    int,
  tetel_nev varchar(20)
)

INSERT INTO #Tetel (tetel_id, fej_id, tetel_nev) VALUES (1, 1, 'verseny');
INSERT INTO #Tetel (tetel_id, fej_id, tetel_nev) VALUES (2, 1, 'túra');
INSERT INTO #Tetel (tetel_id, fej_id, tetel_nev) VALUES (3, 1, 'mountain bike');
INSERT INTO #Tetel (tetel_id, fej_id, tetel_nev) VALUES (4, 2, 'nyereg');
INSERT INTO #Tetel (tetel_id, fej_id, tetel_nev) VALUES (5, 2, 'pedál');

SELECT f.fej_nev,
       STUFF((SELECT ',' + t.tetel_nev [text()]
                FROM #Tetel t
               WHERE t.fej_id = f.fej_id
    FOR XML PATH('')  ), 1, 1, '' ) tetel_lista
  FROM #Fej f

DROP TABLE #Fej
DROP TABLE #Tetel







2015. december 27., vasárnap

xampp php multisite


Ha egy időben több PHP web oldalt szeretnénk/kell a gépünkön párhuzamosan fejleszteni, akkor a XAMPP segítségével ezt megtehetjük az alábbi módosításokkal.

C:\xampp\apache\conf\httpd.conf
Az alapértelmezett porton kívül vegyünk fel annyi portot, amennyi különböző web projektet szeretnénk kezelni.
Például ha a XAMPP-ban beállított alapértelmezett port a 81-es (mondjuk a 80-as port már foglalt az SSRS által), akkor a Listen 81 sor alá vegyük fel a Listen 82, Listen 83, stb sorokat. A httpd.conf fájl ide vonatkozó része így fog kinézni:

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 81
Listen 82
Listen 83
A fájl vége felé találjuk meg azt a bejegyzést, ami megmondja a rendszernek, hogy készüljön fel arra, hogy több projektet fogunk egyszerre használni, amit különböző portokon érünk majd el. Vegyük ki a kettős keresztet (#) a második sorból, hogy az alább látható sorokat kapjuk eredményül.

# Virtual hosts
Include conf/extra/httpd-vhosts.conf


C:\xampp\apache\conf\extra\httpd-vhosts.conf

Itt adjuk meg az egyes portokhoz tartozó beállításokat. Milyen könyvtárban keresse a php projekteket, azokat milyen porton éri el, milyen log fájlokat írjon, stb.
#
# Use name-based virtual hosting.
#
NameVirtualHost *:81
NameVirtualHost *:82
NameVirtualHost *:83
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any block.
#

    ServerAdmin postmaster@host.localhost
    DocumentRoot "C:/xampp/htdocs/xampp"
    ServerName localhost:81
    ServerAlias www.localhost:81
    ErrorLog "logs/xampp-error.log"
    CustomLog "logs/xampp-access.log" common
 

    ServerAdmin admin@localhost
    DocumentRoot "C:/xampp/htdocs/project2"
    ServerName localhost:82
    ErrorLog "logs/project2-error.log"
    CustomLog "logs/project2-access.log" common
 

    ServerAdmin admin@localhost
    DocumentRoot "c:\xampp\htdocs\project3"
    ServerName localhost:83
    ErrorLog "logs/project3-error.log"
    CustomLog "logs/project3-access.log" common

Ezután a XAMPP control panelben (Start menü \ XAMPP \ XAMPP Control Panel) indítsuk újra az Apache modult a Stop gombbal (Actions fejléc alatt közvetlenül). Miután leállt a modul, a Stop gomb felirata Start-ra változik, klikkeljünk rá a modul újraindítására. Ha minden jól megy, akkor a Port mezőfejléc alatt megjelentek az újonnan beállított portjaink.


c:\xampp\php\php.ini

Ha az adatbázisunk MS-SQL, és Active Directory-s, LDAP bejelentkezést használunk a web oldalunkon, a következő sorokat kell aktívvá tenni, ill. hozzáírni a php.ini fájlhoz. A fájloknak természetesen létezniük kell a c:\xampp\php\ext\ könyvtárban.

extension=php_com_dotnet.dll
extension=php_mssql.dll
extension=php_pdo_mssql.dll


Angol nyelvű linkek:


2015. december 18., péntek

Dinamikus lista készítés SQL


Az alábbi lekérdezésekben megmutatom, hogyan lehet tetszőleges rekordszámú listát generálni az SQL rekurzív lekérdezésével.

Az első lekérdezés egy év, hónap listát generál tetszőlegesen megadott 2 dátum között. Továbbá megadjuk az adott hónap első és utolsó napját, illetve hány napból áll a hónap.
Lehetőség van napi bontást készíteni a lekérdezés második felében található DAY(datevalue) előtti két kötőjel eltávolításával.
Ha az eredményt később máshol szeretnénk felhasználni, betehetjük a lekérdezés futásának eredményét egy állandó, vagy átmeneti táblába (#YearMonthTempTable).

WITH mycte AS
(
  SELECT CAST('2011-01-01' AS DATETIME) DateValue
  UNION ALL
  SELECT  DateValue + 1
  FROM    mycte
  WHERE   DateValue + 1 <= '2030-12-31'
)
SELECT  YEAR(datevalue) ev,
        MONTH(datevalue) honap,
--DAY(datevalue) nap,
        CONVERT(date, min(datevalue)) honap_eleje,
        CONVERT(date, max(datevalue)) honap_vege,
        CONVERT(numeric(9,0), COUNT(datevalue)) honap_napok_db
--INTO #YearMonthTempTable
FROM    mycte
group by YEAR(datevalue), MONTH(datevalue) --,DAY(datevalue)
order by YEAR(datevalue), MONTH(datevalue) --,DAY(datevalue)
OPTION (MAXRECURSION 0)
;

A második, egyszerűbb lekérdezés egy számokból álló listát készít két előre megadott szám között. Az érdekessége ennek az SQL lekérdezésnek, hogy a második oszlopban 0 és 999 közötti véletlen számokat generálunk.

WITH mycte AS
(
  SELECT 1 value
  UNION ALL
  SELECT  value + 1
  FROM    mycte
  WHERE   value + 1 <= 12
)
SELECT  value,
ABS(CHECKSUM(NewId())) % 1000 veletlen_szam
FROM    mycte
order by value
OPTION (MAXRECURSION 0)
;






2015. december 13., vasárnap

RFM elemzés


Az RFM elemzés egy marketing eszköz, amely a meglévő vevőket kategorizálja aszerint, hogy

  1. Mennyire friss a legutóbbi rendelése/vásárlása (Recency)
  2. Milyen gyakran vásárol (Frequency)
  3. Milyen értékben vásárol (Monetary)
Miért hasznos az RFM analízis?

Mert megtudhatjuk, ki az aki nagy értékben és rendszeresen vásárol, ki az aki ritkán és kis összegben. Megmondja, ki az aki rendszeresen vásárol, de egy jó ideje már adott le rendelést. Más és más megközelítéseket, marketing akciótervet kell kidolgozni ezen vevőcsoportok megszólítására.



Hogy néz ki egy ilyen elemzés elkészítése a gyakorlatban?

Csupán egy számlalistára van szükséged, amelyben benne van a vevő azonosító, a számla dátuma, és a végösszeg.

Recency: Ha megvan a fenti, számlákat tartalmazó tábla, akkor elsőként nézzük meg minden egyes vevőnél, hogy mikori volt az utolsó számla dátuma. Ezt a dátumot vonjuk ki az aktuális dátumból, és megkapjuk hogy hány nap telt el a legutóbbi vásárlás óta. Ha sok vevőnk volt, akkor rengeteg egyedi értéket kapunk, ezért ezeket soroljuk be kategóriákba. Képezzünk olyan időintervallumokat, amik üzletileg releváns tartalommal bírnak.

Frequency: Válasszunk egy tág időintervallumot az aktuális dátumtól visszanézve ( általában 1-2 év), és nézzük meg, hogy a legkorábbi és legkésőbbi vásárlás dátumok közt hány nap telt el. Ezt osszuk el a vásárlások darabszáma mínusz eggyel. Azaz ha volt két vásárlásunk, ami között egy év telt el, akkor 365 nap / (2-1) = 365 / 1 = 365 napot kapunk eredményül. A Recency-hez hasonlóan az egyes értékeket soroljuk be üzletileg jelentéssel bíró kategóriákba. Ha egy vevő csak egyszer vásárolt a kérdéses időintervallumban, akkor azt a vásárlást kezeljük külön, soroljuk be egy külön kategóriába.

Monetary: Összegezzük fel vevőnként a vizsgált időszakban a számláik végösszegét, majd ezeket az értékeket csoportosítsuk be. 

A fenti három dimenziónál a helyes osztályközök megtalálása nem feltétlenül megy elsőre, bátran kísérletezz vele. A lényeg, hogy olyan kategóriákat tudj képezni, amelyek üzletileg relevánsak, és marketing akciótervet tudsz rájuk építeni!


Angol nyelvű linkek:








2015. június 20., szombat

Staging adatbázis


Mik azok az okok, amik miatt az adatokat érdemes az áttöltések során egy köztes, úgynevezett "staging" adatbázisban eltárolni?

Az angol nyelvű Wikipedia szerint a Staging area az ETL folyamatok során használt, forrás és cél rendszerek közötti tároló hely.

Használatának legjellemzőbb okai:

  • Performacia
    A forrásrendszerekből való adatkinyerés során a performancia szűk keresztmetszet lehet. Ha már az adatexport során transzformációkat alkalmazunkaz adatokon, akkor azok rendkívül leterhelhetik a jellemzően operatív funkcókat ellátó rendszereket, és akár jelentősen lelassíthatják azok működését.
  • Változások detektálása
    Tegyük fel, hogy a forrásrendszerből mindig csak az adott hónap összes forgalmi adatát tudjuk kinyerni (mondjuk .csv formátumban), és nem csak az előző áttöltés utáni plusz rekordokat. Ekkor a teljes havi állományt ide töltjük be, és a cél rendszer és a staging adatbázis közötti eltérés áttöltésekor az áttöltés időpontját naplózva meg tudjuk állapítani, hogy az egyes értékek mikor kerültek be a cél rendszerbe.
  • Jogosultság kezelés
    A cél rendszerhez/adatbázishoz hozzáféréssel rendelkező üzleti felhasználók életét könnyítjük meg, ha csak a végleges, nekik szóló sql táblákat látják. A jogosultságok kezelése során egyszerűbb egy teljes adatbázisra jogot adni, mint az egyes táblákra.

2014. április 25., péntek

SSRS és MySQL



Feladat: 64 bites windows-os gépen szeretnénk egy távoli szerveren található MySQL adatbázishoz csatlakozni a Report Builder-rel.

Probléma: A Report Builder 32 bites alkalmazás, ezért nem jó a 64 bites MySQL driver.
Egy angol nyelvű cikk az esetről: http://blogs.msdn.com/b/sqlcat/archive/2011/03/31/32-and-64-bit-connectivity-from-the-same-machine.aspx

Megoldás: A 32 bites és 64 bites mysql odbc drivert is fel kell telepíteni az SSRS-t futtató gépre! A 32 bites a Report Builder-hez, a 64 bites drivert pedig a 64 bites adatkapcsolatot igénylő alkalmazásokhoz, amelyek lehetnek pl. SQL Server Management Studio, MS Excel, MS Access, stb.

  1. Driverek letöltése

    A driver-eket innen lehet letölteni: https://dev.mysql.com/downloads/connector/odbc/

  2. Driver-ek telepítése

    Célszerű rendszergazdai jogosultsággal telepíteni, mert - én legalábbis így jártam- ennek hiányában nem teszi fel a driver-eket.
     
  3. ODBC kapcsolatok létrehozása

    Szintén rendszergazdai jogosultsággal biztos ami biztos alapon odbc kapcsolatokat létrehozni (32 és 64 bit, teljesen ugyanazon beállításokkal). A 32 és 64 bites ODBC kapcsolatokról egy Microsoft tudástár bejegyzés: https://support.microsoft.com/en-us/kb/942976
     
  4. SSRS új Data Source létrehozása

    Az SSRS oldalon hozzuk létre az új adatforrást, amit ezután már használhatunk a Report Builder-ben, mint megosztott adatforrást. (Shared Data Source)


Linked server létrehozása:

Ha az SQL szerverhez szeretnénk csatolni egy külső, esetünkben MySQL adatbázist, akkor az 1-3 pont elvégzése után az alábbi cikkben leírtak alapján a művelet elvégezhető: http://www.packtpub.com/article/mysql-linked-server-on-sql-server-2008

Provider String mezőbe a következőt írni: DSN=OdbcKapcsolatNeve;
A többi a cikkben leírtak szerint.


2013. október 26., szombat

BCG mátrix


A BCG mátrix a termékek és szolgáltatásoknál azok növekedési potenciálja és piaci részesedése alapján vizsgálódik és helyezi el őket egy kétdimenziós mátrixban.

Segítségével a vállalat képessé válik

  • a termékek és szolgáltatások életciklusának áttekintésére,
  • a termékek és szolgáltatások piaci helyzetének feltérképezésére,
  • az optimális termékportfólió kialakítására
A vállalat a termékeket 2 szempont szerint osztályozza és helyezi el a következő 4 kategória valamelyikébe:
  • Sztárok (Star)
  • Kérdőjelek (Question)
  • Fejőstehenek (Cash Cow)
  • Döglött kutyák (Dog)


Sztárok
A sztárok a piacon a legjobb pozíciót betöltő termékek, magas piaci részesedés és magas piaci növekedés jellemzi őket, jelentős a kereslet irántuk.

Kérdőjelek
A kérdőjelek azok a viszonylag új termékek, amelyeknek még alacsony a piaci részesedésük, s a gyors piaci növekedés lehetősége jellemző rájuk. Érdemes alapos elemzés alá vonni a terméket, s ezt követően dönteni a termék sorsáról (beruházás, kivonás)

Fejőstehenek
A fejős tehenek kategóriába tartozó termékek piaci részesedése magas, azonban a piaci növekedésre már nem jellemző a magas érték. Fontos, hogy e termékek megtartsák erős piaci pozíciójukat, s a vállalat kihasználja a még bennük rejlő lehetőségeket, ugyanakkor a termékhez kapcsolódóan már nem érdemes új beruházásokat indítani.

Döglött kutyák
A döglött kutyák olyan termékek, amelyeknek sem a piaci részesedése, sem a piaci növekedési lehetősége nem kielégítő.


Linkek:

2013. szeptember 8., vasárnap

Jutalék kalkuláció Excelben



Szeretne (többet) eladni, újabb ügyfeleket, több hasznot hozó szerződést? Hacsak Ön nem egy született értékesítő, akkor szüksége lesz egy szakemberre, aki ezt megteszi Ön helyett.

Lehet már fel is vette legújabb emberét, megállapodtak a fizetésben. Valószínűleg tiszta jutalékos rendszerben alkalmazza, de az is lehet, hogy fix fizetést + jutalékot kap emberünk a munkájáért. A két változatban közös, hogy meg kell határozni a jutalék kifizetésének alapjául szolgáló szabályokat.


A legegyszerűbb ösztönzési formulát kiszámíthatjuk úgy, hogy vesszük az adott termék értékesítésének bizonyos százalékát, és azt fizetjük ki az értékesítőnek. (Árbevétel * Jutalék%) Ez jól működik akkor, ha az értékesítőnek kicsi, vagy nincs mozgástere az ár meghatározására.

Ha az értékesítőnek nagy a mozgástere az ár meghatározására (és ezen nincs vezetői kontroll), előfordulhat, hogy olyan alacsony árrést határoz meg, hogy egy forgalomhoz kötött fix jutalék% veszteséget termel a cégnek. Sokszor ez fel sem tűnik, hiszen itt nemcsak a közvetlen költséget (anyagköltség, értékesítői jutalék, stb.) kell hogy fedezze az árrés, hanem a szervezet társosztályainak adott termékre/szolgáltatásra jutó működési költségeit is. (A tulajdonos profitjáról nem is szólva :-) ) Ezeket termék szinten számszerűsíteni nehéz.

Mi a helyzet abban az esetben, ha az értékesítőnek nem az új ügyfelek felkutatása és a közvetlen értékesítés a feladata, hanem egy már meglévő állomány gondozása? Ezek az ügyfelek jobbára maguktól is rendelnek, és szinte lehetetlen meghatározni, hogy az értékesítés melyik részére volt ráhatása az ügyfélmenedzsernek. Olyan értékesítés után pedig nem szeretnénk fizetni, amelyben nem működött közre.

Vagy akár olyan (időszakos) feladatok elvégzésére is utasíthatjuk üzletkötőnket, amely közvetlen plusz árbevételt nem fog hozni. Ilyen lehet az adminisztrációs munka (ügyféllátogatások és telefonbeszélgetések témája, értékesítési előrejelzések, stb.) minél pontosabb elvégzése, amit szintén honorálni illik. Ekkor azt mondjuk, hogy erre van a fix fizetés, vagy beépítjük a jutalékrendszerbe.

Az értékesítő számára motiváló és egyben a vállalat számára is hasznot hozó jutalékos rendszer kialakítása komplex feladat lehet. Ha ez már megvan, akkor a következő lépés az eredményesség visszamérésének kialakítása, illetve magának a jutaléknak az elszámolása.

A jutalékok elszámolását - a motivációs csomag bonyolultságától függően - többféleképpen meg lehet oldani.

  • Ha a forgalomtól függ a jutalék, és a jutalék meghatározásának logikája nem bonyolult és időben állandó, illetve a használt vállalatirányítási rendszer már tartalmaz is ilyen modult, célszerű azt használatba venni.
  • Ha sok paramétertől függ a jutalék mértéke és nagyon sok értékesítőnek/ügynöknek kell jutalékot számolni, akkor egy kifejezetten a jutalékszámításra kifejlesztett szoftvert érdemes vásárolni.
  • Minden másra ott az Excel. :-)

Amennyiben úgy látja, hogy az első 2 opció nem megfelelő/alkalmazható, de nem tudja, hogyan kezdjen neki egy ilyen rendszert táblázatkezelőben kialakítani, akkor Ön most jó helyen jár!

Ha kíváncsi és érdeklődik, hogy milyen lehetőségek vannak egy Excel alapú jutalékszámítási rendszerben, nyugodtan keressen meg kérdéseivel.



2013. július 17., szerda

WITH AS használata az SQL lekérdezésekben


Amennyiben azzal szembesülünk, hogy a SELECT utasításunk átláthatatlanná vagy nehezen olvashatóvá vált a beágyazott SQL lekérdezések (subquery) miatt, akkor érdemes fontolóra vennünk a WITH AS használatát.

Mit tud a WITH AS?

Segítségével az SQL lekérdezésünkből kiemelhetjük a beágyazott lekérdezéseket, és helyettük egy 'alias'-szal, egy névvel hivatkozhatunk rájuk. Pont úgy, mintha tábla vagy view lennének. Ez tapasztalataim szerint meggyorsítja a komplex lekérdezések futtatását, átláthatóbbá teszi a SELECT utasítást.

Hogyan használjuk?

Az így kiemelt beágyazott lekérdezéseket még a fő lekérdezés (ami a beágyazott lekérdezésekből olvas) futtatása előtt definiálnunk kell. Lehetőség van több ilyen "átmeneti tábla" létrehozására is a 'WITH AS' kifejezés után.

Példa:

WITH CTE_Tabla1 AS 

 (
  SELECT Mezo1, Mezo2, Mezo3 FROM tbl_Vers
  WHERE Mezo4 in ('Ecc', 'Pecc', 'Kimehetsz')
 ),

CTE_Tabla2 AS
 (SELECT Field1, Field2 FROM tbl_Mondoka
  WHERE Field3 = 'Holnapután bejöhetsz'
 )

SELECT * 
   FROM CTE_Tabla1 Inner Join CTE_Tabla2 ON CTE_Tabla1.Mezo1 = CTE_Tabla2.Field1
                       Inner Join tbl_AltatoMese ON CTE_Tabla2.Field2 = tbl_AltatoMese.ID


Egyéb tudnivalók:
  • Az utolsó SELECT-ben fel kell használnunk az összes definiált "átmeneti táblát", különben nem fut le a lekérdezés
  • Az utolsó SELECT utasításban az így létrehozott "táblákból" csak az ott megadott mezőneveket használhatjuk.
  • Használható a VIEW készítés során is!


2013. május 27., hétfő

SWOT elemzés


A SWOT elemzés célja

A SWOT elemzés rávilágít egy vállalat, iparág, projekt, termék, szolgáltatás, szervezeti részleg vagy akár egy konkrét személy GYengeségeire, Erősségeire, Lehetőségeire, ill. a kapcsolódó Veszélyekre. (Az előző szavak kezdőbetűit összeolvasva a SWOT elemzést szokták még GYELV elemzésnek is fordítani.)

A SWOT egy angol mozaikszó, 4 szó kezdőbetűiből áll össze:

Strengths - erősségek
Weaknesses - gyengeségek
Opportunities - lehetőségek
Threats - veszélyek


Részletesen

Vegyük szépen sorba a SWOT elemzés egyes elemeit. Mit takarnak igazából, hogyan kell őket meghatározni, illetve pár példát is megnézünk.

Strengths (Erősségek)

Azok a képességek, tulajdonságok, erőforrások, viszonyok, amelyekkel a vállalat/iparág/termék/... már rendelkezik, azokra jelentős ráhatással bír, és amelyek kiemelik a többi versenytárs közül és sikeressé teszik.

Weaknesses (Gyengeségek)

Azok a vállalatra jellemző tulajdonságok, amelyek miatt a vállalat teljesítménye elmarad az iparági átlagtól/versenytársaktól.

Az alábbiakban felsorolok pár szempontot, amelyeket értékelve vagy az Erősségekhez (pozitív) vagy a Gyengeségekhez (negatív) sorolunk:
  • Cég/brand/termék image
  • Technológiai tudás
  • Innovációs képesség
  • Partneri viszonyok
  • Munkatársak (Lojalitás, elkötelezettség, fluktuáció)
  • Tulajdoni viszonyok
  • Menedzsment kompetencia, felkészültség
  • Termék szortiment/választék
  • Pénzügyi helyzet
  • Folyamatok hatékonysága
  • Költséghatékonyság
  • Üzleti modell
  • Vevőkör
  • Döntéstámogatás

Opportunities (Lehetőségek)

Azok a külső körülmények, amelyekre a vállalatnak nincs, vagy csekély ráhatása van, és a vállalat működésére, piaci részesedésére, nyereségességére pozitív hatással lehetnek.

Threats (Veszélyek)

Azok a változások a vállalat környezetében (belül ill. kívül), amelyekre a vállalat csak reagálni tud, érdemben nem tudja befolyásolni a történéseket. Az események kimenetele negatív a vállalatra nézve.

Pár szempont, amelyeket a Lehetőségekhez vagy a Veszélyekhez sorolhatunk:

  • Piaci verseny alakulása
  • Szezonalitás a keresletben/kínálatban/stb.
  • Cég/Termék megjelenési lehetőség a sajtóban
  • Makrogazdasági környezet alakulása
  • Politikai környezet alakulása
  • Változó adórendszer
  • Technológiai változások
  • Vevői igények átalakulása


A SWOT analízis elkészítésekor törekedjünk arra, hogy a stratégia megvalósítását befolyásoló főbb tényezőket soroljuk fel és azokat értékelve dolgozzunk ki intézkedési terveket
Ne essünk abba a hibába, hogy túl szorgalmasak vagyunk és olyan tényezőket is felsorolunk, amelyek csak rendkívül kis mértékben vannak hatással a stratégiai céljainkra. Ne vesszünk el a részletekben, fókuszáljunk a jelentős hatással bíró elemekre.

Témához kapcsolódó linkek:
http://startupguide.hu/mi_az_a_swot_analizis
http://www.veniens.hu/vallalatepito/2009/07/04/betekintes-a-kockazatitokebfektetesek-vilagaba-interju/

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)))



2013. február 27., szerda

ABC elemzés


Ismertető

Az ABC elemzés egy elsősorban a logisztikában / kereskedelemben elterjedt elemzési módszer. Annak megállapítására használják, hogy az adott termék / alapanyag készletgazdálkodásakor milyen stratégiát kövessen a vállalkozás. De ugyanúgy használható annak eldöntésére, hogy egy ügyfél a már meglévő forgalma, lehetséges forgalma, stb. alapján extra figyelmet kíván, vagy nem szükséges a kiemelt bánásmód.

Az analízis a Pareto-elven alapszik, miszerint a termékpaletta egy kis része felelős a teljes forgalom jelentős részéért. Az ABC elemzés a termékek éves felhasználása alapján különíti el a lényegest a lényegtelentől, 3 kategóriába sorolva azokat (A, B, C).


Kategóriák (A, B, C)

“A” anyag:
Az “A” anyagok csoportjába azokat az anyagokat soroljuk, amelyeknek egy periódusra eső felhasználási
értéke magas és / vagy rendkívül nagy mennyiségben használják fel azokat. Az összes anyag együttes értékének 80 %-át, az összes anyag mennyiségének mintegy 10-20 %-át teszi ki.

“B” anyag:
A “B” anyagok csoportjába azokat az alapanyagokat soroljuk, amelyeknek egy periódusra eső értéke közepes. Az összes anyag együttes értékének 15 %-át, az összes anyag mennyiségének mintegy 20 %-át teszi ki.

“C” anyag:
A “C” anyagok csoportjába azokat az alapanyagokat soroljuk, amelyeknek egy periódusra eső felhasználási értéke alacsony, vagy ritkán kerül felhasználásra és/vagy rendkívül kedvező az ára. Az összes anyag együttes értékének 5 %-át, az összes anyag mennyiségének, mintegy 70 %-át teszi ki.


Van pár olyan tényező, ami a fentieken kívül befolyásolja, hogy a felsőbb kategóriába kerül-e (B->A, C->B) az adott alapanyag:
  • gyorsan romló áru
  • ellátás/beszállítók kiszámíthatatlansága 
  • készlethiány súlyossága (mi történne, ha az adott alapanyagból / termékből hiány lépne fel)
Az A és B csoportnál szóba jöhető intézkedések:
  • pontosabb előrejelzések készítése
  • alaposabb nyilvántartás
  • gyakoribb leltározás
  • készlettartási költségek csökkentése


Az ABC elemzés lépései

1. A vizsgálatba bevonandó alapanyagok meghatározása, majd az időszaki felhasznált mennyiségek hozzárendelése.

2. A felhasznált mennyiségek és az egységár alapján a felhasznált termékek forgalmának kiszámítása, a felhasználás/fogyás értéke.

3. Az egyes termékeknek a felhasználás értéke szerinti sorba rendezése. (Csökkenő sorrend!)

4. Az egyes termékek felhasználási értékének százalékos megadása az összes felhasználási értékre vonatkoztatva. Adott termék forgalmának értéke hány százaléka az összes termék forgalmához képest.

5. Az egyes termékekre vonatkozó százalékos adatok összegzése. Az adatok alapján az alapanyagok A, B, C kategóriába történő besorolása.


Linkek:
http://www.agr.unideb.hu/ebook/logisztika/az_abcelemzs.html
http://mediapedia.hu/abc-analizis
http://abc-pareto-analysis.blogspot.hu/
http://gs1hu.org/FTP/documents/logisztika_konyv/Keszletgazdalkodasi_modszerek_utmutato.pdf

Ha több elemzési módszerre kíváncsi, kattintson ide: elemzési módszerek

2013. február 24., vasárnap

Elemzési módszerek



Alább felsoroltam néhány közismertebb, illetve kevésbé elterjedt elemzési - tervezési módszert, technikát. Egy részük stratégiai elemzéshez, más részük hatékonyságnöveléshez használható, illetve néhányuk az üzleti eredményesség javítását hivatott szolgálni.


ABC elemzés

SWOT elemzés

Vízesés diagram

Ár, volumen, összetételváltozás hatás elemzés

BCG mátrix (portfolió elemzés)

Értéklánc elemzés

Balanced Scorecard

RFM elemzés

Ok-okozat, halszálka diagram, Ishikawa-diagram, 5W (5 miért?)

Marketing mix

PEST analízis

Porter féle 5 versenyerő modell

Termék életgörbe

Forgatókönyv technika

Benchmarking

Értékelemzés

Conjoint analízis

Delphi módszer

Brainstorming

Hatalom - érdek mátrix

Költség-haszon elemzések (CBA – cost-benefit analysis)

Költség – haszon mátrix

Érzékenységvizsgálat

Kockázatelemzés

RACI mátrix




2013. január 28., hétfő

INDEX HOL.VAN függvény használata


Minden igazán gyakorlott Excel felhasználó már kívülről ismeri az FKERES függvény használatát. FKERES(keresési_érték,tábla,oszlop_szám,tartományban_keres) 

Ugyanakkor számosan közülük még soha nem használták az INDEX HOL.VAN függvény párost. Az INDEX és HOL.VAN függvények együttes használatával egy táblázat bizonyos oszlopának és sorának metszéspontjában található cellaértéket kérdezhetjük le. Hasonlókat tud, mint az FKERES, de bizonyos helyzetekben mégis érdemes ezt használnunk.

Függvények külön-külön

Az egyszerű INDEX függvény egy értéket ad vissza egy cellatartományból egy sorszám alapján.

   = INDEX ( cellatartomány ; sorszám )
     azaz
   = INDEX ( hol keresem ; hányadik elemet )

A HOL.VAN függvény egy adott elemet keres egy cellatartományban, majd visszaadja az elem tartománybeli relatív pozícióját. Ha pontos találatot szeretnénk, akkor az egyezés típusának értéke legyen 0!

   = HOL.VAN (keresési érték ; cellatartomány; egyezés típusa )
     azaz
   = HOL.VAN (mit keresek; hol keresem; egyezés típusa )


Példa

Vegyünk például egy táblázatot, amelynek 2 oszlopa van. Vevőnév, Vevő azonosító. Tegyük fel, hogy egy másik helyen van egy Vevő azonosítónk, és az ottani azonosítókhoz szeretnénk kikeresni a hozzátartozó nevet. Az FKERES-t itt most nem használjuk, mert nem tud a táblázatban az "oszlopokban visszafelé" (balra) keresni. Helyette használjuk az INDEX HOL.VAN függvényt!

klikk a képre a nagyobb méretért


   = INDEX ( hol keresem; hányadik elemet )

behelyettesítve a HOL.VAN függvényt a második paraméter helyére:

   = INDEX ( hol keresem;
                      HOL.VAN (mit keresek ;
                                         hol keresem ;
                                         egyezés típusa ) )

azaz

   = INDEX ( vevőnevet tartalmazó cellatartomány ;
                     HOL.VAN ( vevő azonosító ;
                                          azonosítót tartalmazó cellatartomány ;
                                          pontos egyezés ) )



Mikor használjuk az FKERES helyett?
  • a  keresett érték (függvény eredménye) oszlopa megelőzi a keresési érték (függvény paramétere)  oszlopát.
  • sok oszlop és sok sor esetén (kevesebb erőforrást használ és így gyorsabb Megjegyzés: Leteszteltem, és a 2010-es Excel-ben ugyanazon a nagyméretű táblán a sok tízezer FKERES ill. INDEX HOL.VAN függvény szinte másodpercre pontosan ugyanannyi idő alatt frissült be (~50mp). Az Excel előző verzióiban valószínűleg még volt különbség, a legújabbakban ez eltűnni látszik.)
  • mátrixos táblázatból adatkinyerésre. (főleg változó oszlopsorrend esetén, pl. EXCEL kereszttáblás kimutatások esetén, ahol bármikor egy új elem kerülhet be az oszlopmezőkbe.)


Angol nyelvű oldalak a témában:
http://www.randomwok.com/excel/how-to-use-index-match/
http://blog.contextures.com/archives/2011/01/25/30-excel-functions-in-30-days-24-index/




2013. január 5., szombat

cash flow tippek - likviditásmenedzsment



Egy vállalkozás életében nemcsak a kurrens termék, a biztos ügyfélbázis kulcsfontosságú a sikeres működéshez, hanem figyelni kell arra is, hogy mindig legyen elegendő rendelkezésre álló pénzösszeg. Ebből fizeti ki a munkavállalókat, a beszállítókat, tesz eleget adó- és járulékfizetési kötelezettségeinek.

Van néhány módszer, amelyek alkalmazásával nem kerül kényelmetlen helyzetbe, nyugodtan alhat pénzügyei miatt.
  • Amennyiben partnereivel stabil kapcsolatot alakított ki, megbíznak Önben, kérjen előre fizetést, vagy előleget.
  • Hosszabb időt igénybe vevő munkáknál állapodjon meg előre vevőivel menet közbeni, szakaszos fizetésről. (munka állásától függően, vagy havi, heti, napi fizetés)
  • Banki kölcsön szükség esetére.
  • Amint végzett a munkával, rögtön állítsa is ki a számlát. Ne várja meg ezzel a hét vagy hónap végét.
  • Világosan és jól láthatóan tüntesse fel számláján a fizetési határidőt, módot.
  • Kínáljon fel valamilyen kedvezményt a előre fizetés vagy lejárat előtti fizetés esetén. (Ez lehet plusz szolgáltatás, ajándék, egyéb kedvezmény a későbbi rendeléseire. Ezzel egyben ösztönözzük is az üzleti kapcsolat további fenntartására.) Ezt szintén tüntessük fel a számlán.
  • Ne növelje a vevői hitelkeretet. Helyette kérje őket számláik gyorsabb kiegyenlítésére, és szállítson több tételben, időben kiegyenlítettebben.
  • Ne adjon hitelt, új nagyobb partnereinél végezzen hitelképesség vizsgálatot.
  • Ha bizonyos vevői rendre késedelmesen fizetnek, növelje az általuk fizetendő árakat. Ha reklamálnak, akkor mutassa be nekik a korai fizetéshez kapcsolódó kedvezményeket.
  • Hagyja elmenni legrosszabb ügyfeleit. Számítsa ki a jövedelmezőségüket, a számukra nyújtott hitelek költségét. Vizsgálja meg a vevőkövetelés és szállítói tartozások átfutási idejét. A bank dolga a hitelezés, nem az Öné.
  • Tárgyaljon beszállítójával az árcsökkentésről illetve a hitelkeret kibővítéséről, fizetési határidő meghosszabbításáról.
  • Versenyeztesse meg beszállítóit, hirdessen tendereket.
  • Új beszállítók feltérképezése és meghívása a kiírt tenderekre.
  • Nemzetközi kereskedelem esetén az árfolyamkilengések hatásának tompítására fedezeti ügyletek kötése.
  • Hitelkártya használata. Amennyiben a hónap végén mindig kiegyenlíti a fennálló egyenleget és a használatának nincsen költsége, ezen típusú kártyák nagyon költség hatékonyak.
  • Használjon elektronikus banki átutalásokat. A banki rendszerek nyilvántartásai segítenek Önnek az áttekinthető cash flow menedzsmentben.
  • Kérje partnereit az elektronikus banki átutalások használatára.
  • Kerülje a banki kölcsönök túlzott használatát, amennyiben tulajdonosi kölcsönnel is megoldható a helyzet. A banki kölcsön kamatai folyamatosan apasztják a működő tőkét, a tulajdonosi kölcsönt pedig azonnal visszakérheti, amennyiben fellendül vállalkozása forgalma.
  • Végezzen érzékenység vizsgálatot. Ez könnyedén megvalósítható egy táblázatkezelő programmal (pl. Excel). Azonosítsa be azokat a költség típusokat, amelyek változása a leginkább érinti az Ön üzletmenetét. Csökkentse a kockázatokat ezen költségek mérséklésével (leépítés, hatékonyabb technológiák alkalmazása).
  • Fontolja meg a bankváltást. Némely bank nagyon kedvezményes elektronikus bankolást kínál az (új) ügyfeleinek.
  • Nagyobb cégek esetén lehetőség van a banki kondíciók újratárgyalására, ne hagyja ki ezt a lehetőséget!


Gondolja át, mi használható fel a fentiekből az Ön vállalkozására vonatkozóan és lásson hozzá még ma a megvalósításhoz!

Olvassa el az alábbi bejegyzést is:
Cash Flow

Excel fájl méretnövekedés

Probléma: Excel fájl mérete indokolatlanul nagy

Ha azt tapasztaljuk, hogy Excel fájlunk mérete minden ok nélkül rendkívül megnőtt, akkor annak hátterében leggyakrabban a formázás nem megfelelő használata áll. Egy Excel fájl mérete drasztikusan megnövekszik, ha a formázásnál (legtöbbször adatok kiemelése háttérszínezéssel) nem csak a megformázni kívánt területet, hanem az egész sort vagy oszlopot formázzuk. 

Míg az Excel korábbi verzióiban kb. 65 ezer sor és 256 oszlop volt, addig a 2007-es verziótól kezdődően már 1 millió sorra és 16 ezer oszlopra teszi rá ilyenkor a formázást az Excel. Ennek mentése nagyságrendekkel nagyobb tárhelyet igényel.

Megoldás: Excel fájl méretének csökkentése a formázás levételével (üres cellákról)

1. Indítsa el a Kezdőlap fülön, a Szerkesztés csoportban az Irányított kijelölés opciót (gyorsabb ha F5-öt nyom, majd Irányított opciót).

2. Üres cellák opció kiválasztása, majd Ok.

3. Kezdőlapon Szerkesztés csoportban az Összes törlése opció kiválasztása.

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

4. Menjünk el az utolsó használt sor alá, jelöljük ki a sort. Majd Ctrl+Shift+le nyillal jelöljük ki az összes maradék sort.

5. Itt is használjuk a 3-as pontban leírt összes törlését.

6. Menjünk el az utolsó oszlop után és Ctrl+Shift+jobbra nyíllal jelöljük ki a többi oszlopot.

7. Innen is töröljünk mindent.

8. Más névvel mentsük a fájlt.

Excel kimutatás

Amennyiben Excel kimutatást is tartalmaz a fájlunk, és már nincs szükség a benne lévő adatokra, akkor jelöljük ki a kimutatás területét és töröljük. Sok (tíz-, száz-)ezer soros kimutatás esetén excel fájlunk egyenesen fellélegzik!

2012. december 5., szerda

Változások kiemelése idősorokban

Tegyük fel, hogy van egy táblázatunk, amely idősorokat tartalmaz. Ha a táblázat értékei időben viszonylag állandóak, kevéssé változnak, akkor az értékek monotonitása miatt nehezebben szúrjuk ki a megváltozott tételeket. Mert az esetek 99%-ában nem az az érdekes, ami állandó és stabil, hanem az átlagtól, a megszokottól eltérőek, a változások.

Létezik egy trükk, amivel mágnesként vonzhatjuk oda a figyelmünket a módosult értékekre. Az Excel feltételes formázását hívjuk segítségül és tekintetünk automatikusan a megváltozott adatokat fogja először észrevenni.

Vegyük példának a következőt. Van egy létszám táblánk a cégünk munkavállalóinak létszámával, részlegekre bontva. Itt szeretnénk kiemelni az időközben történt változásokat.

Jelöljük ki a táblázat második oszlopának első celláját (D5) a táblázatban (az egyes hónapok vízszintesen, egymás mellett helyezkednek el). Válasszuk a "feltételes formázás" menüt, ott pedig az "Új szabály" menüpontot.


A formázási szabály és az Excel munkalap tartalma alapján az alábbi ábrán szereplő szabályt kell létrehozni:


Fontos, hogy a C5 és D5 cellahivatkozásokból a $ jelet vegyük ki! A Formátum... gombra kattintva, majd a Kitöltés lapra navigálva válasszunk ki egy nekünk tetsző háttérszínt.



Az OK gombot lenyomva a D5-ös cella háttérszíne megváltozik, ha a D5-ös cella értéke eltérő a C5-ös cella értékétől. Hogy kiterjesszük ezt a többi cellára, ismételten menjünk a "Feltételes formázás" menübe, itt válasszuk a "Szabályok kezelése..." menüpontot. Fontos, hogy közben a D5-ös cella legyen aktív!


Az alábbi ablak jelenik meg előttünk:


Az Érvényesség mezőben szereplő mezőbe kattintva lehetővé válik, hogy az egérkurzorral kijelöljük azt a tartományt, amelyre szeretnénk a feltételes formázást alkalmazni.


Az OK gombra kattintva megkapjuk a végeredményt. Azon cellák háttere lett sárga, ahol az azonos sorbeli, bal oldali szomszédos cellában szereplő értékhez képest az aktuális érték megváltozott.



Természetesen nemcsak a háttérszínnel lehet játszani, hanem meg is vastagíthatjuk a megváltozott értékeket.

Szintén szemléletes, ha a változatlan értékeket "toljuk háttérbe", a betűszínük szürkére állításával (ekkor a képlet változik, a =C5=D5 kerül a szerkesztőlécbe).




2012. november 12., hétfő

Vízesés diagram

A vízesés diagram (angolul Waterfall chart) a prezentációk kedvelt eleme, mivel jól használható eszköz annak vizuális bemutatására, hogy egy érték milyen alkotóelemekből épül fel. A vízesés diagram szemléletesen mutatja be ezen alkotóelemek, kategóriák egymáshoz viszonyított arányát. Megmutatja, hogy 2 érték között milyen hatások okozták az eltérést.





Lehetséges felhasználási területek:



  • Értékesítés, profit változásának okai

    Az értékesítés és profit évről évre változik. Az évek közötti különbség több hatásból jön össze. Ezeket kategóriákba foglaljuk és bemutatjuk az egyes kategória értékek növekedésének és csökkenésének eredményre gyakorolt hatását.

    Ilyen kategóriák lehetnek:
    • Értékesítés
      • Volumen változás, Árszint változás, Értékesítési kampányok hatása
      • Hónapok
      • Termékek
      • Értékesítési csatornák
    • Profit
      • Bevétel és Költség elemek (Árbevétel, Termék beszerzési érték, Jutalék, Munkabér, Rezsi, Adminisztrációs ktg., stb.)
  • Cash Flow

    Egy vállalkozás életében a készpénztermelő képesség az egyik legfontosabb mutató. A vízesés diagrammal megmutatható, hogy például az egyes hónapok, vagy az egyes Cash Flow kategóriák esetében az időszakok közötti változások milyen hatással voltak a Cash Flow alakulására.
  • Ár felbontás

    A termék árából kiindulva, összetevőkre bontva eljuthatunk a termék profitjáig. (Ár, Beszerzési ktg., Szállítási ktg, ..., Profit
  • Költség összetétele

    Az egyes időszakok között az értékesítési, termelési, támogató osztályok, stb. költségei milyen irányban változtak.(Pl. ha nő az értékesítési volumen, akkor indokolt a termelési, az értékesítési ktg. növekedése, de ez már nem feltétlenül igaz a támogató (nonproduktív osztályok, pl. könyvelés, IT, cégvezetés, stb.) költségeire is.)
A fentiek csak példák arra, hogy mi mindenre alkalmas a vízesés diagram. 

Ha ötlete vagy kedve támadt kipróbálni, mire is lehet még jó ez a típusú chart, akkor ajánlom a saját készítésű diagramom, amely innen, vagy a Letöltések oldalról letölthető. 


Segítségével gyerekjáték lesz a vízesés diagram készítése a prezentációjához!




2012. szeptember 23., vasárnap

Bevétel és Költség nyilvántartás

Ingyenes bevétel és költség nyilvántartó szoftverek

Az alábbi szoftverek főleg magánszemélyek és kisebb vállalkozások pénzügyeinek nyilvántartására alkalmasak. Lehetőség van bankszámlák, értékpapír számlák nyilvántartására, eseti és ismétlődő, pénzmozgással járó tranzakciók kezelésére, megtervezésére. Sztenderd, beépített riportok elégítik ki jogos kíváncsiságunkat.


Money Manager Ex (magyar nyelven is)

A program funkcióiról képernyőmentések:
http://www.codelathe.com/mmex/mmex_screenshots.php

Windows verzió letöltése itt: Money Manager Ex letöltés

Szoftver honlapja letöltési lehetőséggel egyéb operációs rendszerekre: http://www.codelathe.com/mmex/mmex_download.php



A szoftverben ki lehet választani a magyar nyelvet, de a fordítás nem teljes. Innen lehet letölteni egy pár fokkal jobb nyelvi fájlt: magyar nyelvi fájl letöltés

Érdekesség: Aki ismeri az SQL adatlekérdező nyelvet, az saját lekérdezéseket is barkácsolhat, a szoftver adatbázisa SQLite alapú.


Microsoft Money (angol)

A Microsoft már nem fejleszti tovább ezt a termékvonalat, elvileg ingyenesen letölthető és telepíthető. A honlapjuk szerint régen aktiválni kellett a terméket, most erre már nincs szükség.

Itt lehet letölteni: Misrosoft Money Plus Sunset Home & Business letöltés

Angolul tudóknak:
  Termék leírása: http://support.microsoft.com/kb/2118008


GNU Cash (magyar nyelven is)

Nem töltöttem le és teszteltem le, nem tudok nyilatkozni a szoftver minőségéről. A honlapján szereplő adatok alapján körülbelül ugyanazokat tudja, mint az előző 2 verzió.

A program honlapja: http://www.gnucash.org/features.phtml?lang=hu_HU


Egyéb linkek a témában:
http://www.penzugyitanoda.hu/file/start/szoftverek.pdf
http://www.royalcashflow.hu/