0

Monat aus Text holen?

Hallo zusammen,

wie kann ich denn den Monat als Zahl aus dem Text holen. Die Schreibweisen sind immer anders, einzig das Jahr bleibt gleich.

zb.:

24.08.-25.08.2022

24.-25.08.22

KW 32

als Ergebnis bräuchte ich einfach in dem Fall die 8

4 Antworten

null
    • Michi.1
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Monat aus den ersten beiden varianten holen bekomm ich so hin:

    if extractx('Leistung in KW', "[0-9]{1,}(?=\.2022)", "g", "$0") > 0 then
        extractx('Leistung in KW', "[0-9]{1,}(?=\.2022)", "g", "$0")
    else
        extractx('Leistung in KW', "[0-9]{1,}(?=\.22)", "g", "$0")
    end

    Doch wie bekomm ich aus der Kalenderwoche den Monat zurückgegeben ?

    Woche holen über:

    extractx('Leistung in KW', "[^\D]+", "g", "$0")

    ergibt 32, wie bekomm ich den Monat für 2022 ?

      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Ich lasse das mit der KW weg, da nur früher verwendet.

      Ist es möglich die Jahreszahl irgendwie als variable zu deklarieren? So das ich über ein Auswahlfeld das Jahr eingeben kann. Es soll eine Auswertung für Kalendermonate bzw. Jahre werden.

      extractx('Leistung in KW', "[0-9]{1,}(?=\.2022)", "g", "$0") 
      extractx('Leistung in KW', "[0-9]{1,}(?=\.22)", "g", "$0")
        

      if extractx('Leistung in KW', "[0-9]{1,}(?=\.2022)", "g", "$0") > 0 then
          extractx('Leistung in KW', "[0-9]{1,}(?=\.2022)", "g", "$0")
      else
          if extractx('Leistung in KW', "[0-9]{1,}(?=\.22)", "g", "$0") > 0 then
              extractx('Leistung in KW', "[0-9]{1,}(?=\.22)", "g", "$0")
          else
              if 'Leistung bis' then
                  format(month('Leistung bis'), "00")
              else
                  if Leistungszeitraum then
                      format(month(Leistungszeitraum), "00")
                  end
              end
          end
      end
      
    • mirko3
    • vor 1 Jahr
    • Gemeldet - anzeigen

    Ich sage es mal so, Michi, ich weiß eigentlich nicht genau, was Du willst. Aber, wenn Du nur die Jahreszahl als Variable in ein Pattern der Regexfunktion benötigst, dann geht es so wie unten.

    P.S. bei extractx() benötigst Du kein Flag "g", weil es in Ninox nicht funktioniert und in diesem Fall benötigst Du auch nicht die Variable $0, da Du nicht mehrere Matches möchtest. Es ist aber auch nicht falsch, sie stehen zu haben. Wenn Du die führende Null bei einstelligen Monaten nicht benötigst, dann setze das extractx()-Ergebnis in number(). Mirko

    let yr := text(2022);
    let pattern := "[0-9]{1,}(?=\." + yr + ")";
    extractx(date, pattern)
    
      • Michi.1
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Mirko danke dir,

      ganz genau das meinte ich. Kenn mich mit extractx gar nicht aus. Ist auch verdammt schwer da den durchblick zu bekommen. Mir hat nur die DB im Webinar geholfen um was halbwegs passendes zu finden 

Content aside

  • vor 1 JahrZuletzt aktiv
  • 4Antworten
  • 45Ansichten
  • 2 Folge bereits