Clever-Excel-Forum

Normale Version: Individuelle Zahlen in individuellem String auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen

Gibt es eine Möglichkeit, die Zahlzeichen aus einer Zelle so auszulesen, wie ich sie in Spalte D rot markiert habe? (Vorher Buchstaben und nachfolgend Buchstaben unterschiedlicher Länge)
Es gibt PR-Projekte, die haben stets variable Nullstellen voran. Andere Projekte, ohne PR, sind reine Zahlzeichen ohne vorangestellte Null

Ich habe bereits eine Formel finden können, die es erlaubt, die Zahlenfolge wie in Spalte B darzustellen. Hier fehlen allerdings die Nullen in den Zeilen 1 und 4, bei den beiden PR Projekten

Die Datei hängt anbei.

Beste Grüße und lieben Dank für die Mühe, wer Interesse hat

Manfred
Hallo

Eine mögliche Lösung in PQ könnte etwa so aussehen.
Moin

Dann klaue ich mal meine Antwort im anderen Thread von heute.

Code:
=LET(
text_aufteilen;TEIL(A1;SEQUENZ(LÄNGE(A1));1);
wert_ist_eine_zahl;ISTZAHL(--text_aufteilen);
text_entfernen;WENN(wert_ist_eine_zahl;text_aufteilen;" ");
ziffern_verketten;TEXTTEILEN(GLÄTTEN(TEXTKETTE(text_entfernen));" ");
ziffern_verketten)
Mein Vorschlag wäre
Code:
Public Function NumericOnly(s As String) As String
    Dim re As Object
    Set re = CreateObject("VBScript.RegExp")
    re.Pattern = "\d+"
    If re.test(s) Then
        NumericOnly = re.Execute(s)(0)
    End If
End Function

Sub test()
    Debug.Print NumericOnly("Projekt PR-001085 abcdefghij")
End Sub
Hallo

mit VBA Makro sieht die Lösung dann so aus:  Button drüclen, Fertig.
Leider ist es eine alte Excel 2003 Datei, das Makro kann man in die Original Datei kopieren.

mfg Gast 123
Zitat:Eine mögliche Lösung in PQ könnte etwa so aussehen.

Da ist jeder PQ-Neuling sofort begeistert, da er ja sofort nachvollziehen kann, wie sich das Ergebnis ganz einfach zusammenklicken lässt!
Zitat:Da ist jeder PQ-Neuling sofort begeistert,
Dann ist ja das Ziel erreicht.
Natürlich gibt es oft genung gute Gründe, genauso wie bei Formeln, auch PQ-Funktionen zu verschachteln.

Ob dies dann aber die Laufzeit positiv beeinflusst, ist mehr als fraglich. Unstrittig ist aber, das Anwender die man an Power Query heranführen möchte, eher abgeschreckt werden. Da ist es dann doch besser, den Weg zu wählen, den sich jeder Anwender erklicken kann.

Hier dazu meine Lösung:

Code:
let
    Source      = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    Change_Type = Table.TransformColumnTypes(Source,{{"Spalte1", type text}}),
    Projekt_Nr1 = Table.SplitColumn(Change_Type, "Spalte1", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Spalte1.1", "Spalte1.2"}),
    Projekt_Nr2 = Table.SplitColumn(Projekt_Nr1, "Spalte1.2", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Projekt-Nr.", "Spalte1.2.2"}),
    Col_Projekt = Table.AddColumn(Projekt_Nr2, "Projekt", each [Spalte1.1] & [#"Projekt-Nr."] & [Spalte1.2.2]),
    Keep_needed = Table.SelectColumns(Col_Projekt,{"Projekt-Nr.", "Projekt"})
in
    Keep_needed
Hallo Detlef,

lieben Dank für Deine Antwort. Genau so etwas habe ich gesucht. Die anderen Hinweise mittels PQ zeigten auch ein gutes Resultat. Ihre Lösung konnte ich am besten nachvollziehen. Wäre es möglich, wenn ich noch fragen kann, ob man die Formel, die Sie mir sendeten noch dahingehend erweitert, dass allgemein bei den Ziffernfolgen, bei denen die 00 oder die 000 vorstehen auch noch das "PR-" vorne dranhängt also:

WENN 001085 oder 000317 DANN PR-001085 oder PR-000317 

So dass ich quasi als Lösung bekäme:

PR-000317
1399
85419
PR-001085

Bei Interesse, vielen Dank für die weitere Mühe

Beste Grüße

Manfred
Hi,

diese neue Forderung macht die Sache viel einfacher:

=SPALTENWAHL(TEXTTEILEN(A1;" ");2)

bzw. wenn die Zahlen ohne "PR-" als echte Zahlen kommen sollen:

=LET(x;SPALTENWAHL(TEXTTEILEN(A1;" ");2);WENNFEHLER(--x;x))
Seiten: 1 2