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:
Lá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:
De amint az ki is derül azonnal, a TRIM nem segít:
Mié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: