Listák szűrése, sorba rendezése alfanumerikus karakterek esetén

Gyors és apró megoldás, de jó eltenni a stresszesebb napokra

2015. október 01. - Office Guru

Olvasói megkeresés gondolkodtatott el egy problémán Excelben, amely önmagában roppant egyszerű és elvárt feladatnak tűnik a programmal szemben, mégis ha nem figyelünk, könnyen megviccelhet minket. Ráadásul ez egy olyan feladat, amely elég sokszor szembejöhet velünk a mindennapokban, hiszen nem egy-két korábbi posztban feltételezett különleges esetről van szó.

Adott a kérdés és ennek kétfajta értelmezése: ha van egy listánk, amelyben alfanumerikus adatokat tárolunk, mondjuk egy-egy betű után egy szám vagy éppen a számok után egy-egy (vagy akár több) betű, akkor azt hogy tudjuk nagyon szépen sorrendbe tenni úgy, hogy az Excel a betűket ne vegye figyelembe, tehát 001 után ne 002, hanem 001c, 001db és stb. jöjjön? Íme a két listánk:

130.jpgA megoldásaim inkább csak ötletek és tanácsok, biztos, hogy van jobb és hatékonyabb út - ahogy általában Excelben mindig van egy jobb és hatékonyabb megoldás, de remélhetőleg ez segít valakinek kiindulópontként megtalálni azt a választ, amelyet keres.

Az első példánál kapásból én egyértelműen egy segédoszlopot használnék, amellyel levágnám a celláimban található adatokból a szöveges részt, a betűket, mondjuk egy MID függvény segítségével valahogy így:

131.jpgEzután a két oszlopot kijelölve szúrjunk egy sorbarendezést a segédoszlopunkra alapozva:

132.jpgA felugró kis figyelmeztetésnél most maradjunk az első verziónál, azaz számként rendezzük sorba a teljes listánkat:

133.jpgHa ez megvan, szimplán rejtsük el a segédoszlopot és lám, kész az eredmény. Nem egy kvantumfizika a  megoldás, de a célt elértük és ez a lényeg.134.jpgA másik fentebbi értelmezés és példalista megoldása sem sokkal nagyobb ördöngősség, jelöljük ki oszlopunkat vagy akár az egész sheetet, ha sok oszlopos listáról beszélünk, majd kattintsunk Ribbonunk Home fülén az Editing szekcióban a Sort&Filter gombra és szúrjunk be egy sorbarendezést jelen esetben a Típus oszlopra, majd kattintsunk okét.

135.jpgA felugró kis figyelmeztető ablakban az előző értelmezéshez képest most a második opciót kell választanunk azaz számként és számként tárolt szövegeket külön rendezzen sorba:

136.jpgÉs ennyi volt, kész is a megoldás.

137.jpg

A bejegyzés trackback címe:

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

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.

anteus 2015.10.02. 18:10:02

hello, nagyon szuper a blog, ezt a posztot ugyen még nem olvastam el, de most egy témajavaslattal állnék elő: ki milyen megoldással oldja meg a következő feladatot?
Egy munkavállalói lista tartalmazza a béreket, valamint a belépési (és egyes esetekben a kilépési) dátumokat. Az év hónapjait oszlopokba rendezve kellene, hogy mutassuk az adott hónapra eső bérköltséget, megfelelően arányosítva a tört hónapokat. Nekem van egy elég komplikált megoldásom rá, de biztos létezik sokkal frappánsabb...
Köszi

gyrgyvrs 2015.10.04. 19:07:11

Utcanév, közterületjelleg (utca, út, tér) és házszám esetén mit javasolnál?

Office Guru 2015.10.04. 21:27:58

@gyrgyvrs: Valószínűleg elsőre nem értem meg a problémád, de azzal mi a gond? Simán ráküldesz egy sorba rendezést és utcanév, majd ugyanolyan utcanév esetén házszám alapján sorba is rendezi.

gyrgyvrs 2015.10.05. 06:31:07

Utca, házszám (egyben) oszlop tartalmazza 1-202-ig a Kölcsey u. 1-202-ig így egybeírva az utca házszámot. Sorba rendezve:
1. Kölcsey u. 1.
2. Kölcsey u. 10.
3. Kölcsey u. 100.
4. Kölcsey u. 101. ...
13. Kölcsey u. 11....
112. Kölcsey u. 2.
A címlista egy ősrégi számviteli szoftverből származik, úgyhogy van Kölcsey u., Kölcsey ut, Kölcsey utca, Kölcsey F. u...stb.

Office Guru 2015.10.05. 20:39:46

@gyrgyvrs: Feltételezve, hogy A1 a header és A2-től vannak az utcanevek, függvények egybeágyazásával egy segédoszlopba kinyerném a házszámokat, majd kiterjesztve arra az oszlopra is a sorba rendezést, szépen sorba állítanám az egész listát.

Függvény a segédoszlopba:
=MID((MID(A2,SEARCH(" ",A2,1)+1,LEN(A2))),SEARCH(" ",(MID(A2,SEARCH(" ",A2,1)+1,LEN(A2))
),1)+1,LEN(MID(A2,SEARCH(" ",A2,1)+1,LEN(A2))))