startsida < företaget < organisera < datorer < tips
 
Text i Excel

 
  Tips & Trix
Kalkylering
Tabeller
Diagram
Text
Utskrifter
Diverse
Kontroller
Makrofunktioner
Snabbtips
Tema
   
  Innehåll
expowera

 

Materialet publicerat med tillstånd från Dennis Wallentin.

Inledning
I XL finns det en uppsjö av textfunktioner. Dessa kan komma väl till pass i olika situationer, inte minst när man importerar data från andra program. Här presenteras och demonstreras de allra flesta textfunktionerna. Jag beskriver inte funktionerna utförligt utan mer översiktligt och samlat. För djupare diskussion kring de enskilda funktionerna se XL:s inbyggda hjälpfunktion.

Hämta delvärden ur textsträngar
Det finns tre funktioner för att hämta delvärden ur textsträngar, VÄNSTER, HÖGER och EXTEXT. Styrkan ligger i att bearbeta delar av större textvärden, såsom artikelnummer mm. Man kan också manipulera hur textvärdena presenteras m h a funktionerna GEMENER, VERSALER och INITIAL.

I XL finns det två funktioner för att hitta textdelvärden, HITTA och SÖK. Fördelen med HITTA-funktionen jämfört med SÖK-funktionen är att HITTA-funktionen skiljer på gemener och versaler. Detta kan ibland vara direkt avgörande för resultatet. HITTA-funktionen demonstreras därför mer utförligt här. Det går också alldeles utmärkt att räkna antal tecken i celler m h a funktionen LÄNGD.

I tabellen nedan demonstreras dessa funktioner.

Hantera blanksteg
Ibland vid import av data kan överflödiga blanksteg följa med datan. För att arbeta med textvärden krävs det att dessa tas bort. Det sker bäst m h a RENSA-funktionen. En snarlik funktion är STÄDA-funktionen men den tar bort icke utskrivningsbara tecken men inte blanksteg. Man kan också sammanfoga text, vilket kan endera ske m h a &-tecknet eller SAMMANFOGA-funktionen. Om man upptäcker större fel i textsträngarna kan man byta ut tecken, vilket sker företrädesvis m h a BYT.UT- och ERSÄTT-funktionerna. Att omvandla text till tal krävs om man ska utföra beräkningar på datan. Man kan även göra det omvända, d v s omvandla tal till text m h a TEXT-funktionen.

I nedanstående tabell demonstreras dessa funktioner.

Komplexa textfunktioner
I tabellen nedan visas litet mer komplicerade textformler, vilka helt enkelt bygger på de ovan presenterade funktionerna och (som alltid) fantasi. Som vanligt (!) så kan man få till stånd flera lösningar på ett problem. Katalogtillhörighet är ett sådant problem. Med hjälp av INF-funktionen och angivandet av variabeln "katalog" erhålls samma information. 

Rak vänstermarginal
Många gånger har vi behov av att få en rak vänster marginal i celler, t ex om text ska centreras.

Nedanstående bild belyser problematiken:

För att erhålla en uppställning liknande den i "Formaterad"-kolumnen kan följande textformat skapas:

  • ____@

Understrykningstecknet _ skapar blanksteg i textformatet och möjliggör det önskade slutresultatet. Antal tecken styrs av hur "centrerad" texten ska vara.

Hitta positioner
Här demonstreras en matrisformelteknik för att identifiera ett teckens position i en textsträng.

I exemplet ska tecknet punkt (".") sista position i textsträngar identifieras, såväl räknat från vänster som höger sida:

  • Exempelvis 1.2.3 = 4 från vänster sida och 2 från höger sida.

Bilden nedan visar exemplet i sin helhet:

För att få till stånd positionsuppgiften från vänster sida används följande matrisformel och som kopieras nedåt i kolumnen:

  • {=LÄNGD(A2)-LÄNGD(HÖGER(A2;PASSA(".";EXTEXT
    (A2;LÄNGD(A2)+1-RAD(INDIREKT("1:"&LÄNGD(A2)));1);0)-1))}

För att få till stånd positionsuppgiften från höger sida används följande matrisformel och som kopieras nedåt i kolumnen:

  • {=LÄNGD(HÖGER(A2;PASSA(".";EXTEXT(A2;LÄNGD(A2)
    +1-RAD(INDIREKT("1:"&LÄNGD(A2)));1);0)-1))+1}

Hitta första och sista raden
Här demonstreras en teknik för att ur en textlista identifiera den första respektive sista raden ett textvärde förekommer i, såsom del av ett artikelnummer

Tekniken kan vara användbar för t ex beräkningar av större artikellistor.

Följande bild visar exemplet i sin helhet:

För att erhålla den första raden används följande matrisformel:

  • {=MIN(OM(ÄRTAL(SÖK(D1;A1:A6));RAD(A1:A6)))}

För att erhålla den sista raden används följande matrisformel:

  • {=MAX(OM(ÄRTAL(SÖK(D1;A1:A6));RAD(A1:A6)))}

Slutligen för att summera radintervallet i B-kolumnen används följande formel:

  • =SUMMA(INDIREKT("B"&D2&":B"&D3))

Hitta första kolumnnamnet
Detta tips belyser hur vi kan hitta första kolumnnamnet där kolumnen innehåller ett textvärde.

Bilden nedan visar exemplet i sin helhet:

För att erhålla första kolumnnamnet används följande matrisformel:

  • {=INDEX($A$1:$D$1;MIN(OM(ÄRTEXT($A$2:$D$4);
    KOLUMN($A$1:$D$1);"")))}

Formeltekniken kan givetvis användas för att hitta det första numeriska värdet i en uppställning:

  • {=INDEX($A$1:$D$1;MIN(OM(ÄRTAL($A$2:$D$4);
    KOLUMN($A$1:$D$1);"")))}

Räkna förekomsten av textsträngar
I det första exemplet demonstreras hur vi kan räkna förekomsten av ordet "Excel" i meningen:

Följande formel gör ingen åtskillnad mellan versaler och gemener för den sökta textsträngen:

  • =SUMMA(LÄNGD(A2)-LÄNGD(BYT.UT(VERSALER(A2);
    VERSALER(B2);"")))/LÄNGD(B2)

Vill vi göra åtskillnad mellan versaler och gemener sker det genom att ta bort funktionen VERSALER:

  • =SUMMA(LÄNGD(A2)-LÄNGD(BYT.UT(A2;B2;"")))/LÄNGD(B2)

I det andra exemplet visas hur vi kan räkna förekomsten av en textsträng i en lista:

Följande formel ger oss det önskade antalet:

  • =PRODUKTSUMMA(N(ÄRTAL(SÖK(B2;A2:A5))))

Korrekt svensk formatering av ISBN
Mats Carlsson, känd lokal bokhandlare i Halmstad och en tillikaledes hängiven XL-anhängare, har på ett generöst sätt tillhandahållit detta tips för att formatera ISBN (de numren som identifierar böcker) enligt svensk standard.

Noterbart är att det inbyggda formatet i XL speglar de amerikanska förhållandena och återger inte korrekt ISBN enlig svensk standard.

Bilden nedan visar exemplet i sin helhet:

Följande "vackra" formel skapar det önskade formatet på ett excellent sätt:

  • =OM(EXTEXT(A2;3;1)="0";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;1)
    &"-"&EXTEXT(A2;4;6)&"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)
    ="1";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;1)&"-"&EXTEXT(A2;4;6)
    &"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)="2";VÄNSTER
    (A2;2)&"-"&EXTEXT(A2;3;2)&"-"&EXTEXT(A2;5;5)&"-"&HÖGER
    (A2;1);"")&OM(EXTEXT(A2;3;1)="3";VÄNSTER(A2;2)&"-"&EXTEXT
    (A2;3;2)&"-"&EXTEXT(A2;5;5)&"-"&HÖGER(A2;1);"")&OM
    (EXTEXT(A2;3;1)="4";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;2)
    &"-"&EXTEXT(A2;5;5)&"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)
    ="5";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;3)&"-"&EXTEXT(A2;6;4)
    &"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)="6";VÄNSTER(A2;2)
    &"-"&EXTEXT(A2;3;3)&"-"&EXTEXT(A2;6;4)&"-"&HÖGER(A2;1);"")
    &OM(EXTEXT(A2;3;1)="7";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;4)
    &"-"&EXTEXT(A2;7;3)&"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)
    ="8";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;5)&"-"&EXTEXT
    (A2;8;2)&"-"&HÖGER(A2;1);"")&OM(EXTEXT(A2;3;1)
    ="9";VÄNSTER(A2;2)&"-"&EXTEXT(A2;3;6)&"-"&EXTEXT
    (A2;9;1)&"-"&HÖGER(A2;1);"")

Första bokstaven versal
Mats Carlsson har även tillhandahållit detta tips som säkerligen många kan ha nytta av - Att omvandla första bokstaven till versal och övriga bokstäver till gemen.

Oavsett om hur texten är skriven omvandlas första bokstaven alltid till versal såsom bilden nedan visas:

Följande formel gör det möjligt:

  • =VERSALER(VÄNSTER(A2))&GEMENER(ERSÄTT(A2;1;1;""))

Detta exempel finns ej tillgängligt för hämtning.

Ersätta oönskade tecken i importerad textmassa
Vid import av data från andra system, i synnerhet från stordatorsystem, erhålls andra tecken för å, ä och ö. Att ersätta dessa tecken kan många gånger vara önskvärt.

Detta tips visar på ett sätt att ersätta tecknen med de önskade.

Först måste vi ta reda på vilket teckennummer varje tecken har i ANSI-tabellen. Det sker enklast med följande VBA-procedur:

Option Explicit 

Sub TeckenNummer()

  ' © 2002 Alla rättigheter XL-Dennis 

 Dim i As Long 

 For i = 1 To 255 

  Cells(i, 1).Value = Chr(i)

 Next

End Sub

Antag att tecknet "¬" finns angivet i en textmass istället för å. Detta tecken har numret 172 i ANSI-tabellen.

  1. Markera cellområdet som ska uppdateras.
     
  2. Välj kommandot Redigera | Ersätt...
     
  3. I dialogrutan och i textfältet för "Sök efter" skrivs tecknet in mha tangentbordskombinationen ALT+172 -
    i textfältet ska nu ¬ visas.
     
  4. I textfältet för "Ersätt med" anges å.

Hitta första & sista textvärdet
Här demonstreras två lösningar för att erhålla det första respektive det sista textvärdet i en lista.

Följande bild visar exemplet i sin helhet:

För att erhålla det första textvärdet används följande matrisformel:

  • {=INDEX(A2:A7;PASSA(0;ANTAL.OM(A2:A7;"<"&A2:A7);0))}

För att erhålla det sista textvärdet används nedanstående matrisformel:

  • {=INDEX(A2:A7;PASSA(0;ANTAL.OM(A2:A7;">"&A2:A7);0))}

Hitta radområdet för textvärden
Här demonstreras hur vi kan hitta start- respektive slutrad för förekomsten av ett textvärde, dvs det radområde som ett textvärde finns i.

Bilden nedan visar exemplet i sin helhet:

Följande matrisformel identifierar den första raden:

  • {=MIN(OM(ÄRTAL(SÖK(C1;A2:A7));RAD(A2:A7)))}

Följande matrisformel identifierar den sista raden

  • {=MAX(OM(ÄRTAL(SÖK(C1;A2:A7));RAD(A2:A7)))}

Formlerna gör ingen åtskillnad mellan gemener och versaler. Om vi vill kan vi givetvis sätta ihop dessa så att utfallet blir såsom: Radområdet: 4:7

Antal textvärden som inte förekommer
Här demonstreras två tekniker för att erhålla antal textvärden som inte förekommer i en lista.

Bilden nedan visar exemplet i sin helhet:

Formeln i cell B1 är följande:

  • =PRODUKTSUMMA(N(ANTAL.OM(A2:A6;C2:C11)=0))

Följande matrisformel används i cell B2:

  • {=SUMMA(N(ICKE(ANTAL.OM(A2:A6;C2:C11))))}
Upp
Senast uppdaterad: 2005-10-05 © Dennis Wallentin