0

extractx

Hallo

Ich habe ein Feld "Platz"mit dem inhalt z.b. 1A od 12B ich möchte nun die Zahl mit extractx aussortieren.

Wie geht das?

12 Antworten

null
    • T_Bartzsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Walter,

    mit \d für eine Zahl (Digit)

    mit \d\d für 2 Zahlen

    mit \d\d? für eine Zahl und evtl. eine 2. Zahl oder

    mit \d+ für eine oder mehrere Zahlen

    also: extractx(Platz, "\d+","g") zieht dir von 12B nur die 12

     

    Gut zum Testen für sowas:

    https://regex101.com/

    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    extractx(Platz, "\d+")

    Funktioniert allerdings nur mit einem Match.

    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Uups Antwort nicht gesehen.

    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    extractx(Platz, "\d+","g") 

     

    ergibt bei mir immer "g". Läßt man das Flag weg, funktioniert es.

    • Walter
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Bei mir kommt die Felermeldung:

    Die Funktion ist nicht definiert:extractx(choice,string,string) in Zeile1, Spalte 27

    • T_Bartzsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ja, weil PLATZ bei dir dann scheinbar ein Auswahlfeld ist. Auswahlfelder geben in Formeln erstmal eine Zahl zurück... es sei denn man nutzt text(Platz).

    Also: extractx(text(Platz),"\d+") - das global-Flag kannst Du, wie Uwe schrieb, dann besser weg lassen falls es zu fehlern kommt. Und ja, das ergibt nur einen Match - heisst: es erkennt alle Zahlen bis zur nächsten "Nicht-Zahl" aber danach dann nicht weiter... also 1B, 1234XX werden erkannt, bei 12DF34 oder 45XXX12345 hast du dann nur 12, bzw. 45

    • Walter
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Besten Dank

    so funktionierts.

    • Uwe_Wagner.2
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Die extractx Funktion scheint mir nicht sauber umgesetzt zu sein. In den diversen RegEx Online Tools wird mit oben stehendem RegEx Ausdruck mehrere Matches gefunden, die dann bspw. in JavaScript weiterverarbeitet werden können. Daher meine Bitte an die Ninox Entwickler: die Matches in einem Array sammeln. Vor allen Dingen die nicht vorhandene Dokumentation dazu erstellen.
    Wenn man schon auf die JavaScript Dokumentation verweist, dann sollten auch die Funktionen ähnliche Namen haben (wie bei replacex =>replace() in JS bspw.) und die Aufrufsyntax wirklich identisch sein. Wie oben beschrieben ist das "g" Flag anscheindend gar nicht möglich, bzw. führt zu Fehlern (anders in Javascript).

    Uwe

    • Walter
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Jetzt habe ich die Zahlen, aber wenn ich sie Aufsteigend Sortiere, ist das Resultad 1,10,11,12,13,14,2,3,4,5,6,7,8,9 ?

    • Walter
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Jetzt habe ich die Zahlen, aber wenn ich sie Aufsteigend Sortiere, ist das Resultad 1,10,11,12,13,14,2,3,4,5,6,7,8,9 ?

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Dann sind es nicht die Zahlen, sondern Texte. Du solltest noch number( deine Formel) schreiben 

    Leo

    • Walter
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Funktioniert.

    Bin noch anfänger.