Telefonszámunk: 1-472-0679

Negatív előjel a számok végén

2020-04-10 - horvimi - Megtekintések száma: 539 - Kategória: Általános tippek, Képletek
Hivatkozott Excel verzio: Excel 2010 Excel 2013 Excel 2016 Office365

Még manapság is előfordul, hogy egyes pénzügyi rendszerek úgy exportálnak adatokat, hogy a negatív előjel a számok végén van. Az export fájl legtöbbször CSV formátumban van, ezért a példában is ebből indultam ki. Nincs benne több, mint egy adatoszlop. A negatív számokat a hátul lévő mínusz jel miatt szövegesnek tekint az Excel a megnyitáskor, ezért ha vegyesen vannak pozitív és negatív számok az oszlopban, akkor kb. így fog kinézni a CSV és az Excel.

zaro-minusz-csvnegatív előjel a végén excel

Tehát a feladat az, hogy a negatív előjeleket mozgassuk a számok elejére, és természetesen alakítsuk numerikus típusúvá. Három megoldást fogok megmutatni, szituációtól függ, hogy mikor melyiket érdemes használni.

Megoldás képlettel

Általános megoldás

A cikk megírása előtt rákerestem a problémára, és meglepődve tapasztaltam, hogy 5-6 féle megoldást találtam. Közöttük voltak meglehetősen összetettek is. De a leggyakoribb mégis az a megoldás, amikor lecserélik a kötőjelet a semmire, majd az eredményt hozzáfűzik a kötőjelhez, és számmá alakítják. Természetesen ezt csak akkor kell megtenni, ha a végén van a kötőjel.

=HA(JOBB(A2;1)="-";ÉRTÉK("-"&HELYETTE(A2;"-";""));A2)

Kedvenc megoldásom

Találtam azonban egy igazi gyöngyszemet is, ami hihetetlenül elegáns, azonnal a kedvencem lett.

=MAX(A2;-HELYETTE(A2;"-";""))

Két érték közül választja ki  nagyobbat. Az egyik az eredeti, a másik a kötőjeltől megszabadított és ellenkező előjelűre módosított verzió. Nézzük az eseteket:

  1. Ha az eredeti érték pozitív, akkor az első változatlan marad, a másodikból kijön a kötőjel, és negatív lesz. A nagyobb tehát az eredeti pozitív szám
  2. Ha az eredeti érték végén kötőjel van, akkor szövegesnek számít, és a MAX függvény figyelmen kívül hagyja. A másodikból kiveszi  a kötőjelet, és negatívvá teszi.

Érdemes megfigyelni, hogy a képlet épít az Excel automatikus típuskonverziójára, miszerint a a HELYETTE függvény szöveges kimenetét az előjelváltó mínusz jel miatt magától számmá alakítja. Ha biztosra akarunk menni, akkor ezt ÉRTÉK függvénybe tehetjük, de enélkül is működik.

Zseniális!

Megoldás szövegből oszlopok eszközzel

Erről az eszközről már több bejegyzés is született, most egyet hivatkozok meg, ami néhány speciális lehetőséget mutat be,

Úgy látszik, hogy ez a szám végi negatív előjel probléma régóta ismert lehet, mert az Excel minden verziója, amiben benne van a szövegből oszlopok parancs, beépítve tartalmazza az átalakítást.

  1. Kijelöljük az oszlopot
  2. Adatok-> Szövegből oszlopok
  3. A harmadik lépésben bemegyünk az “Irányított” opcióba
    Szovegbol-oszlopok-harmasik-lepes
  4. Az opció alapból be van pipálva (be sem kellene jönni ide)
    Szovegbol-oszlopok-negatív előjel a végén
  5. Befejezés

Megoldás PowerQuery-vel

A CSV csatlakozás során magától felismeri a helyzetet és automatikusan kezeli.

Zaro-minuszjelek-PowerQuery

Lássuk mindezt Videón is

 

 

 

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