Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Individuelle Zahlen in individuellem String auslesen
#1
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


Angehängte Dateien Thumbnail(s)
   

.xlsx   Ziffer auslesen.xlsx (Größe: 9,69 KB / Downloads: 12)
Antworten Top
#2
Hallo

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


Angehängte Dateien
.xlsx   Ziffer auslesen.xlsx (Größe: 17,43 KB / Downloads: 10)
Viele Grüße
PIVPQ
[-] Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:
  • MCT1979
Antworten Top
#3
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)
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

[-] Folgende(r) 1 Nutzer sagt Danke an shift-del für diesen Beitrag:
  • MCT1979
Antworten Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Warkings für diesen Beitrag:
  • MCT1979
Antworten Top
#5
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


Angehängte Dateien
.xls   Ziffer auslesen.xls (Größe: 20,5 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • MCT1979
Antworten Top
#6
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!
[-] Folgende(r) 2 Nutzer sagen Danke an ws-53 für diesen Beitrag:
  • GMG-CC, MCT1979
Antworten Top
#7
Zitat:Da ist jeder PQ-Neuling sofort begeistert,
Dann ist ja das Ziel erreicht.
Viele Grüße
PIVPQ
[-] Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:
  • MCT1979
Antworten Top
#8
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


Angehängte Dateien
.xlsx   Ziffer auslesen PQ.xlsx (Größe: 19,67 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an ws-53 für diesen Beitrag:
  • MCT1979
Antworten Top
#9
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
Antworten Top
#10
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))
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • MCT1979
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste