Fylla kolumn i excel med blanksteg i slutet

Permalänk
Medlem

Fylla kolumn i excel med blanksteg i slutet

Hej!

Jag har Excel 2003. Jag undrar hur jag gör för att fylla ut alla celler i en kolumn med blanksteg till Xst tecken.

Exempel:

Kolumnen kanske ser ut:

123 (tot 3 tecken)
abcd (tot 4 tecken)
12abc (tot 5 tecken)

Det är alltså olika mängd tecken i varje cell. Jag vill att i de fall antal tecken är mindre än 5, så ska det fyllas på med blanksteg. Det ska alltså se ut:

123"mellanslag""mellanslag " (tot 5 tecken)
abcd"mellanslag" (tot 5 tecken)
12abc (tot 5 tecken)

Jag har problem med att hitta en formel som slår igenom på hela kolumnen, inte bara en enda cell.
Helst så skulle jag vilja kunna skapa en "tom mall" där dessa formler ligger på kolumnerna, så att när jag sedan skriver in data i mina celler så ska det automatiskt fyllas ut med blanksteg i slutet till Xst tecken.

Jag hittade en formel som enligt människor borde ha funkat:
=a1 & Rept(" ", X-len(a1))
dels fungerar den inte (ersätter X med antal tecken som ska vara totalt), får felmeddelande om circular reference. Och dels så gäller den bara för cell A1, jag vill att den ska gälla för hela kolumnen A1 till sista cellen i kolumnen.

Kan någon hjälpa mig med detta? Jag skulle vara oerhört tacksam!

Mindre prioritet, men ändå ett problem som jag skulle behöva ha löst är att:
Skapa "osynliga" kolumner, där alla celler är fyllda med Xst blanksteg. Går detta att göra?

Anledningen till allt detta är att jag vill sedan spara en .txt eller .csv fil. Programmet som importerar dessa filer sedan letar efter datat på position 1-4, 6-12, etc. Så därför måste jag ha blanksteg om min data i en cell inte uppnår 4 tecken, 7 tecken etc.

EDIT: inser varför jag får circular reference. Lägger jag inte formlen i B1 istället så fungerar den. Men jag vill inte kopiera över texten till en ny kolumn.

Visa signatur

Shit happens

Permalänk
Medlem
Skrivet av damned:

Hej!

Jag har Excel 2003. Jag undrar hur jag gör för att fylla ut alla celler i en kolumn med blanksteg till Xst tecken.

Exempel:

Kolumnen kanske ser ut:

123 (tot 3 tecken)
abcd (tot 4 tecken)
12abc (tot 5 tecken)

Det är alltså olika mängd tecken i varje cell. Jag vill att i de fall antal tecken är mindre än 5, så ska det fyllas på med blanksteg. Det ska alltså se ut:

123"mellanslag""mellanslag " (tot 5 tecken)
abcd"mellanslag" (tot 5 tecken)
12abc (tot 5 tecken)

Jag har problem med att hitta en formel som slår igenom på hela kolumnen, inte bara en enda cell.
Helst så skulle jag vilja kunna skapa en "tom mall" där dessa formler ligger på kolumnerna, så att när jag sedan skriver in data i mina celler så ska det automatiskt fyllas ut med blanksteg i slutet till Xst tecken.

Jag hittade en formel som enligt människor borde ha funkat:
=a1 & Rept(" ", X-len(a1))
dels fungerar den inte (ersätter X med antal tecken som ska vara totalt), får felmeddelande om circular reference. Och dels så gäller den bara för cell A1, jag vill att den ska gälla för hela kolumnen A1 till sista cellen i kolumnen.

Kan någon hjälpa mig med detta? Jag skulle vara oerhört tacksam!

Mindre prioritet, men ändå ett problem som jag skulle behöva ha löst är att:
Skapa "osynliga" kolumner, där alla celler är fyllda med Xst blanksteg. Går detta att göra?

Anledningen till allt detta är att jag vill sedan spara en .txt eller .csv fil. Programmet som importerar dessa filer sedan letar efter datat på position 1-4, 6-12, etc. Så därför måste jag ha blanksteg om min data i en cell inte uppnår 4 tecken, 7 tecken etc.

EDIT: inser varför jag får circular reference. Lägger jag inte formlen i B1 istället så fungerar den. Men jag vill inte kopiera över texten till en ny kolumn.

Om jag förstått dig rätt, så prova följande

=A1 & REPT(" "; 5-LEN(A1))

Formeln förutsätter dock att maxlängd är 5.

Edit: om du använder svensk Excel så får du byta semikolon mot komma.

Permalänk
Medlem
Skrivet av amoniac:

Om jag förstått dig rätt, så prova följande

=A1 & REPT(" "; 5-LEN(A1))

Formeln förutsätter dock att maxlängd är 5.

Edit: om du använder svensk Excel så får du byta semikolon mot komma.

Tack!
Formlen fungerar, och är densamma som jag hittade tidigare. Problemet med detta är att jag vet inte hur jag får den att slå igenom i hela kolumnen. Jag vill alltså inte skapa en ny kolumn. För att få den formlen att fungera, så måste jag lägga den i en annan kolumn, exempelvis kolumn B.

Allra helst så ska formlen redan finnas i kolumn A, så att när jag börjar fylla i mitt excellark med data (jag börjar alltså med ett tomt ark), så rättar den till detta med blanksteg automatiskt åt mig. Går detta att lösa?

Visa signatur

Shit happens

Permalänk

En fullösning men du skulle ju kunna lägga upp 4 st "Conditional format". Applicera de 4 olika om det är 1, 2, 3 eller 4 tecken i strängen och kör då custom format:

_-_-_-@

För att lägga till 3 blanksteg innan, följande för 4 blanksteg etc

_-_-_-_-@

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av KurreKula:

En fullösning men du skulle ju kunna lägga upp 4 st "Conditional format". Applicera de 4 olika om det är 1, 2, 3 eller 4 tecken i strängen och kör då custom format:

_-_-_-@

För att lägga till 3 blanksteg innan, följande för 4 blanksteg etc

_-_-_-_-@

Tack KurreKula, det låter som en lösning som skulle fungera. Om jag förstod den
Som du säkert förstår nu så är jag inte så haj på excel. Skulle du kunna vara vänlig och förklara mer ingående?

Och jag vet inte om jag missförstår dig, eller du mig, men blankstegen behövs läggas till i slutet.

Visa signatur

Shit happens

Permalänk
Skrivet av damned:

Tack KurreKula, det låter som en lösning som skulle fungera. Om jag förstod den
Som du säkert förstår nu så är jag inte så haj på excel. Skulle du kunna vara vänlig och förklara mer ingående?

Och jag vet inte om jag missförstår dig, eller du mig, men blankstegen behövs läggas till i slutet.

Kom på att om man ändrat formatet så kommer antagligen inte det att synas i en export till CSV. Du får nog jobba med två kolumnet

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av KurreKula:

Kom på att om man ändrat formatet så kommer antagligen inte det att synas i en export till CSV. Du får nog jobba med två kolumnet

Hej! Efter många om och men så blev lösningen ett VBA macro:

Sub x() Dim astr() As String Dim i As Long Dim sAdr As String Dim iWid As Long astr = Split("A,4,B,2,C,1,D,12,osv", ",") For i = 0 To UBound(astr) Step 2 iWid = astr(i + 1) With ActiveSheet.UsedRange.Offset(1) With .Resize(.Rows.Count - 1).Columns(astr(i)) .NumberFormat = "@" sAdr = .Address(False, False) .Value = Evaluate("if(len(" & sAdr & ") < " & iWid & ", " & sAdr & " & rept("" "", " & iWid & "- len(" & sAdr & ")), left(" & sAdr & ", " & iWid & "))") End With End With Next i End Sub

Visa signatur

Shit happens