Telefonszámunk: 1-472-0679

Hónap nevéből sorszám trükkösen

2016-10-31 - horvimi - Kategória: Dátum és időkezelés
Hivatkozott Excel verzio: Excel 2007 Excel 2010 Excel 2013 Excel 2016

Tegyük fel, hogy szükségünk lenne arra, hogy a hónapneveket sorszámmá alakítsuk. Tehát a Január lesz az 1-es, és a December a 12-es. Lehet, hogy egy adattisztítási feladatunk van, ahol a dátum értékek szövegesen vannak, és abból nekünk kell rendes dátumot készíteni.

Ennek egyik lehetséges megoldása, hogy az Év, Hónap és Nap értékeket kibányásszuk a szöveges dátumból, és számként átadjuk a DÁTUM függvénynek, ami rendes dátum sorszámot épít belőle.

datum-honap-sorzsam

Ebben a leírásban a problémának csak a hónap részével foglalkozunk. Szóval tegyük fel, hogy valamilyen módszerrel már kibontottuk a hónapneveket.

A Klasszikus megoldás

A klasszikus megoldás az, hogy egy külön tartományban felvesszük a hónapneveket, és abban keressük meg az aktuális hónapunk sorszámát egy HOL.VAN (MATCH) függvénnyel. Itt ugye az lehet a probléma, hogy fel kell venni a hónapneveket egy tartományba. Ez persze lehet egy másik munkalapon, vagy egy rejtett névtartományban tömbkonstansként, de akkor is szükség van rá.

honapsorszam_match

A trükkös megoldás

Itt azt használjuk ki, hogy ha az Excel találkozik egy ilyen szöveggel, hogy „1január” vagy „1február”, stb…, akkor felismeri, hogy ez egy dátum az aktuális évből, és a HÓNAP (MONTH) függvénnyel megkaphatjuk belőle a hónap számát.

Sőt, akkor is működik, ha „1jan” vagy „1feb”, stb… Ebben az esetben angol verzióban is jó lesz, mert a rövid hónapnevek a hosszú nevek első 3 karakteréből állnak elő a legtöbb nyelvi verzióban, az angolban is.

Itt látható a jelenség működés közben. A cella lezárásakor a szerkesztőléc egy aktuális évben lévő dátumot fog mutatni.

autodatum

Lássuk a medvét

Vegyük az eredeti hónapnevet (ami mondjuk az A2-ben van), szedjük le az első három karakterét, tegyünk az elejére egy 1-est, majd kérdezzük le a hónap értéket. Ahogy megbeszéltük, az Excel a számból és a hónap nevéből automatikusan egy dátumot állít elő, aminek a hónap részét vesszük ki.

=HÓNAP(1&BAL(A2;3))

honapsorszam_trukkos

Egy másik leírásban megmutatom a dolog fordítottját is, azaz hogyan lehet a hónap sorszámokból hónapneveket generálni trükkösen, a hónapnevek tartománya nélkül.

Lássuk a videót

Vélemény, hozzászólás?