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
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
Folgende(r) 1 Nutzer sagt Danke an Warkings für diesen Beitrag:1 Nutzer sagt Danke an Warkings für diesen Beitrag 28 • MCT1979
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
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • MCT1979
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
Folgende(r) 2 Nutzer sagen Danke an ws-53 für diesen Beitrag:2 Nutzer sagen Danke an ws-53 für diesen Beitrag 28 • MCT1979, wisch
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