Office Guru

A nem működő TRIM magyarázata

2016. december 12. - Office Guru

Alapesetben ha felesleges szóközöket tartalmazó cellákkal, táblázatokkal kell dolgoznunk, akkor szinte kapásból a TRIM függvényhez nyúlunk, amely ugyebár definíciója szerint a szavak közötti egyes szóközöket leszámítva eltávolítja egy szövegből a felesleges szóközöket. Olvasónk is így tett, mégis olyasmivel szembesült, ami váratlanul érte: a TRIM nem működött. De persze mint gyorsan kiderült, működik a funkció, igenis jól működik, máshol kell keresni a magyarázatot.

Nézzük csak a következő kis táblát:

trim.jpgLátható, hogy első ránézésre rengeteg felesleges szóköz van a cellákban, amelyeket meg is próbálhatunk eltávolítani a TRIM segítségével:

trim2.jpgDe amint az ki is derül azonnal, a TRIM nem segít:

trim3.jpgMiért nem? Azért nem, mert minden valószínűség szerint a szövegünk mondjuk egy weboldalról vagy HTML formátumú e-mailből másolt szöveg és a szóköznek látszó karakterek valójában non-breaking space-k, azaz olyan fehér, üres karakterek, amelyeket HTML-ben szélek, szóközök beállítására használhatunk a következő kis taggel:

 

Ha ezt tudjuk és azt tapasztaljuk, hogy a TRIM nem működik, akkor máris fordulhatunk egy beágyazott SUBSTITUTE függvény bevetéséhez, amellyel először az összes non-breaking space-t sima szóközre alakíthatjuk, utána pedig ráereszthetjük a TRIM-et.

Na de hogy tegyük ezt meg? Azt ugye tudjuk, hogy a SUBSTITUTE függvény első paramétere a célcella, ahol az átalakítandó értékünk van, második paramétere az a karakter, amelyet a harmadik paraméterként megadott karakterre akarunk lecserélni.

Ergó már csak egy non-breaking space és egy szóköz karakter beadására van szükség, amelyet simán nem olyan egyszerű beadni a formulába, így ezen karaktereket a CHAR függvény felhasználásával fogjuk beadni, hiszen a CHAR a beállított karakterkészletből (alapesetben ASCII) dobja vissza a nekünk szükséges karaktert a karakter számának megadásával. Az ASCII karakterkészlet adott karaktereihez tartozó kódját bárhol le tudjuk vadászni az interneten, én ezt most nem másolom be ide.

CHAR(160) a non-breaking space karakterkódja, CHAR(32) pedig a sima szóközé, így a beágyazott SUBSTITUTE valahogy így néz ki:

SUBSTITUTE(C5,CHAR(160),CHAR(32))

Ezután pedig már csak a TRIM-et kell ráeresztenünk és kész is vagyunk:

trim4.jpg

A bejegyzés trackback címe:

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

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.

Hóhér az utolsó barátod · http://internetszemete.blog.hu 2016.12.13. 07:42:24

Unicode/UTF korában biztosan jó ötlet ASCII kódokkal bűvészkedni?
(Nem feltétlenül a space okozhat gondot, inkább ha valaki továbbgondolja és másra is használni próbálja)

gigabursch 2016.12.16. 09:33:09

Kedves Officeguru és Hozzászólók!

OFF a téma itt, de nem találtam direkt kontaktot. Ha érdekes a kérdéskör, esetleg egy önálló topicot is megér, mert másnak is előállhat...

(Office 2013 - W8.1)
Dolgozok egy excell táblával. Ismét köbözés, de most rönkválaszték kapcsán, nomeg egy kis árvizsgálat.
A 4-5 Kbyte méretű fájl egyszer csak felugrott 9, majd 14 majd 37 Mbyte-ra
Abnormális növekedés egy 550 rekord és ~ 30 oszlop kérdésben még akkor is, ha több Fkeres meg HA függvény fut benne.

Próbáltam minden mögötte/alatt lévő oszlopot/sort törülni, hátha valami szemét bennmaradt, de nem tudtam feloldani a problémát.

Zippelve 17 Mb-ra megy össze.

Kinek-hova küldhetném el, hogy kellő perverzitással kiküzdje belőle a hirtelen beleragadt mocskot (mert biztos valahol valami szemét állta bele)?

email:
a nickem kukac és gémél...

Előre is köszönöm...

Office Guru 2016.12.17. 15:02:42

@gigabursch: Szia! A bannerben olvasható az e-mail címem, oda nyugodtan küldd át, megnézem.

gigabursch 2016.12.17. 18:34:15

@Office Guru:
Mél ment.
Előre is köszi.

gigabursch 2016.12.19. 13:34:08

@Office Guru:
Innen is megköszönöm.
:-)

Sőt ment egy posztra egy javaslat is, hátha másnak is van/volt/lesz hasonló problémája.
süti beállítások módosítása