Seite 1 von 3

Excel Frage

Verfasst: Fr Sep 30, 2011 08:45
von NR20
Hallo,

ich habe eine liste mit lauter langen Zahlen
Beispiel:

235898776982
235444245478
235487422658

Ich möchte jetzt gerne, dass in dieser Liste jeweils die erst 2 vorne verschwindet. Kann man da irgendwie per Formel oder einen sonstigen Trick sagen "Die erste Zahl soll immer verschwinden?"

Re: Excel Frage

Verfasst: Fr Sep 30, 2011 09:56
von Vernochan
Solange es immer die 1. Ziffer ist, suchst du folgendes:
=RIGHT(A3;LEN(A3)-1)

Auf Deutsch müsste es folgendes sein:
=RECHTS(A3;LÄNGE(A3)-1)

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 08:02
von NR20
Hey danke, schonmal sehr cool :thumbup:

Jetzt kann ich sie also drunter ziehen, sozusagen, gibts aber auch eine Möglichkeit sie direkt zu ersetzen?

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 09:36
von Vernochan
Direkt ersetzen? Also ohne weitere Spalte?
Das geht nur mit vba. Is aber auch kein Problem.

Wenn die Excel datei Offen is, drück ALT+F11.
Dann kommt ein neues Fenster. Möglicherweise hast du da schon ein Textfenster offen. Wenn nicht, musst du links unter "Project - VBA Project" einen Doppelklick auf das Worksheet machen, in dem die Daten stehen. Dann geht das Textfenster auf.
Dort kopierst du folgenden Code rein:

Code: Alles auswählen

Sub blah()
    Dim nMaxRows As Integer
    nMaxRows = Sheets("Sheet1").Range("A65536").End(xlUp).Row + 0
    Dim nRowCounter As Integer
    
    For nRowCounter = 1 To nMaxRows
        Dim sCellValue As String
        sCellValue = Sheets("Sheet1").Cells(nRowCounter, 1).Value
        Sheets("Sheet1").Cells(nRowCounter, 1).Value = Right(sCellValue, Len(sCellValue) - 1)
    Next nRowCounter
    
End Sub

Bei dem Code musst du noch ein paar Dinge ändern:
bei Sheets("Sheet1")
musst du "Sheet1" durch den Namen des Sheets ersetzen, in dem du arbeitest. Das natürlich bei allen Vorkommen

Bei Range("A65536")
musst du das A durch den Spaltennamen ersetzen, in dem die Daten stehen (z.B. C oder D)

Sheets("Sheet1").Cells(nRowCounter, 1)
Hier musst du die 1 durch den Index der Spalte ersetzen, in der deine Daten stehen.
Dabei ist A = 1; B = 2; C = 3 und so weiter. Da musst du einfach zählen


Achja.
Falls die Daten nicht in Reihe 1 anfangen, sondern erst in einer späteren (manchmal hat man ja in der 1. Reihe ne überschrift), dann änder einfach bei
For nRowCounter = 1 To nMaxRows
die 1 zu der Reihe ab, in der die Daten anfangen.


Und das sollte es schon gewesen sein.

Dann drückst du nur noch F5 und guckst dir das Ergebnis an.



Wenn du das ganze mit abspeichern willst, musst du es aber unter "Macro enabled Workbook" speichern. Sonst kannst du den Code nicht mitspeichern.

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 09:48
von NR20
m'kaaaay
hab das mal gemacht und dann bei F5 drücken folgendes bekommen:

[ externes Bild ]

dort habe ich "Run" geklickt und krieg dann folgende Fehlemeldung:

[ externes Bild ]

Hm, dann kann ich aber nur unter Macro Workbook speichern? Das ist nicht optimal, oder kann man das dann noch ganz stinknormal als Excel benutzen? Könnte die IT evtl. Probleme damit kriegen, wenn die die Listen mal in ein Tool hochladen müssen?


EDIT: Zur Not, muss halt einfach jede Liste eine neue Spalte mit der obrigen Formel kriegen, auch nicht so dramatisch...

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 14:42
von wynk
Auf den ersten Blick wuerde ich sagen, da fehlt die Zahl bei Range. Du hast nur A dort stehen. Es muss aber A65536 heissen.

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 21:20
von NR20
Achso, würde Sinn machen :ugly:

Re: Excel Frage

Verfasst: Mo Okt 03, 2011 23:16
von Vernochan
Sorry, hab mich da nich klar ausgedrückt. Sollte aber dann auch funktioniert haben.

Du kannst dann sogar einen Button in die Exceltabelle einfügen, die diese Sub Routine ausführt. Dann kannste 15x klicken und alles is leer :ugly:

Re: Excel Frage

Verfasst: Di Apr 17, 2012 16:10
von NR20
Vernochan hat geschrieben:Solange es immer die 1. Ziffer ist, suchst du folgendes:
=RIGHT(A3;LEN(A3)-1)

....
Das funktionier übrigens super :thumbup:

Jetzt möchte ich es aber andersrum
Ich habe eine Liste mit Zahlen:

3564464987
3646468468
3464648679

und ich möchte vor alle Zahlen eine 2 davor haben. Inwiefern muss die Formel dann verändert werden?

Re: Excel Frage

Verfasst: Di Apr 17, 2012 18:29
von Devastator
Nutze doch einfach die Verketten-Formel:

=Verketten("2";A1)

Re: Excel Frage

Verfasst: Di Apr 17, 2012 18:48
von Dante
Oder einfach
="2"&A1
:uconfused:

Re: Excel Frage

Verfasst: Di Apr 17, 2012 21:06
von That Guy
nerds. :ugly:

Re: Excel Frage

Verfasst: Di Apr 17, 2012 23:17
von Vernochan
Weil man Google bedienen kann? :ugly:

Re: Excel Frage

Verfasst: Di Apr 17, 2012 23:35
von Dante
Dazu brauchst man doch kein Google :ulol:

Wobei... Wenn ich daran denke, dass ich vor nem Jahr noch absolut 0 Ahnung vom bösen Excel hatte... :ueye:

Re: Excel Frage

Verfasst: Di Apr 17, 2012 23:41
von Vernochan
Ich kann das wunderbar mit vba oder c# machen, aber mit den Excel Formeln hätt ich vermutlich echt nachgeguckt (wobei ich da natürlich nach concat gesucht hätte, was sehr schnell zu ner lösung geführt hätte)