Office Guru

Meghatározott karakterszám elérése Excel-celláinkban standard karakterekkel

2016. július 19. - Office Guru

Mielőtt kisebb kihagyás után folytatnánk a makrós projektünket, a mai napi posztban egy elég egyszerű Excel-kérdést fogunk megválaszolni, ami nem más, minthogy hogyan tudjuk elérni, hogy az Excel-celláinkban szereplő, egyenlőtlen hosszúságú tartalmainkat (lehet akár szöveg, akár szám, akár mindkettő) nullákkal vagy egyéb karakterekkel úgy töltsük fel, hogy elérjünk egy meghatározott karakterszámot.

Ha ez így elsőre kicsit komplex megfogalmazás volt, akkor álljon itt a következő példa:

01_1.jpgÉrtelemszerűen a cél, hogy bármi is van az első oszlopban, duzzasszuk fel nullákkal úgy, hogy minden esetben 7 legyen a karakterek száma.

Nem egy komplex probléma, kapásból több megoldást tudna valószínűleg az olvasók többsége mondani rá, de remélhetőleg a következő javaslatok közül egyik-másik azért segíthet valakinek a feladatában.

1. Egyszerűen használjunk egy RIGHT és CONCATENATE függvényt együtt (utóbbit helyettesítsük simán a & jellel), azaz első körben fűzzük össze az adott cellánk tartalmát hét nullával (így garantálhatjuk, hogy üres cellák esetén hét nulla jelenjen meg), majd az így kialakult, legrosszabb esetben 7 nullából, legjobb esetben 14 karakterből álló cellatartalmunkból vágjuk le az utolsó hét karaktert:

=RIGHT("0000000"&C4,7)

02_1.jpg2. Az első példa valamivel bonyolultabb verziója a REPT, LEN és CONCATENATE függvények együttes alkalmazása. REPT függvény segítségével a nullát (vagy a szükséges karaktert) megsokszorozzuk annyiszor ahányszor kell (REPT("0",7)), de a sokszorozás számából vonjuk ki eredeti cellánk karakterszámát (ezt egy LEN függvénnyel egyszerűen meghatározhatjuk: (REPT("0",7-LEN(C4))) és ezt fűzzük össze az eredeti cellával:

=REPT("0",7-LEN(C4))&C4

03_1.jpgEmellett természetesen használhatjuk a LEN, CONCATENATE és valamiféle "darabolós" függvény további változatait is, VBA-t ilyen esetben bevetni talán már luxus lenne. Viszont felmerül még egy kérdés: mi van ha bekerül egy olyan cella is az oszlopunkba, ami már alapból több, mint hét karakter?

Az 1. megoldás levágja az első számát, ami nem igazán elfogadható, a 2. megoldás #VALUE! értéket fog visszaadni, így a biztonság kedvéért megbolondíthatjuk függvényeinket még egy IF formulával is. Így a megoldások így fognak kinézni.

1. =IF(LEN(C4)>7,C4,RIGHT("0000000"&C4,7))

2. =IF(LEN(C4)>7,C4,REPT("0",7-LEN(C4))&C4)

04_1.jpgKérdések, javaslatok jöhetnek a szokásos csatornákon.

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr818901728

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Atzs · https://adatrendezo.hu 2016.07.21. 07:59:41

Ha a cellák csak számokat tartalmaznak, akkor =szöveg(C1;"0000000")
süti beállítások módosítása