0

sum() filtern wenn Formel einen bestimmten Text ausgibt

Ich habe eine Tabelle wo der Datensatz in einer Formel einen Text durch eine ifelse-Bedingung ausgibt, und danach möchte ich in einem Formel-Feld die Summe daraus bekommen. Aber irgendwas klappt da nicht. Liegt es daran, dass das Feld einen Text ausgibt.

beide Code-Versionen klappen nicht.

sum(Zeitaufzeichnung.'Gesamtarbeit dieser Woche'[Zeitaufzeichnung.'DIV-Anzeige-Formel'= "DIV 4"])
sum(Zeitaufzeichnung.'Gesamtarbeit dieser Woche[Zeitaufzeichnung.'DIV-Anzeige-Formel'= styled("DIV 5", "GREY")])

4 Antworten

null
    • m2apla gmbh
    • Etienne_Scherrer
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Zwei Punkte:

    Es wäre viel einfach einen SwitchCase zu versenden für deine Auswahl:

    if 'Rechnungen, Angebote etc.' then
        styled("DIV 4", "GREEN");
    else
        switch 'Wenn keine Rechnung'.Abteilung do
            case 1: styled("DIV 1", "YELLOW")
            case 2: styled("DIV 1", "YELLOW")
            case 3: styled("DIV 2", "PURPLE")
            case 4: styled("DIV 3", "PINK")
            case 5: styled("DIV 5", "GREY")
            case 6: styled("DIV 6", "YELLOW")
            case 7: styled("DIV 7", "CYAN")
            default: styled("keine Abteilung bekannt", "ORANGE")
        end;
    end;
    

    Für den Vergleich sollte es mit text() funktionieren:

    text('DIV-Anzeige-Formel') = "DIV 5"
    
      • Michael_Blechinger
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Etienne Scherrer danke Dir! Das mit Switch, da bin ich zu fleißig gewesen, mit den ständigen if else then… 
      Das mit dem Vergleich verstehe ich nicht. 

      Was ich eigentlich brauche ist, das mit dem Filtern aus einer Tabelle. 

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Michael Blechinger 

      'N Abend. Etiennes Vorschlag bezieht sich auf die Formulierung der Filterbedingung. Um den String-Wert eines mit styled() formatierten Funktionsfeldes abzufragen, muss die Funktion text() genutzt werden. Es gibt aber noch andere Ungereimtheiten. Zum Beispiel das doppelte 'Zeitaufzeichnung' in der sum()-Formel.

      Die Summierung sollte nach folgendem Schema aufgebaut sein:

      sum((Tabelle[Filterbedingung]).Datenfeld)
      

      Wobei 'Datenfeld' das Feld ist, dessen Werte summiert werden sollen. Dementsprechend könnte ich mir vorstellen, dass die Formel so aussehen müsste:

      sum(Zeitaufzeichnung[text('DIV-Anzeige-Formel') = "DIV 4"]).'Gesamtarbeit dieser Woche')
      

      Da ich das Datenmodell nicht kenne, ist letzteres aber nur Spekulation.

      • Michael_Blechinger
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro Danke Dir jetzt habe ich auch gleich dazu gelernt und auch gleich einen Tippfehler bei deinem Code gefunden :-)

      So klappt es:
      Da war eine Runde Klammer nach "DIV 4"] zu viel 

      sum(Zeitaufzeichnung[text('DIV-Anzeige-Formel') = "DIV 4"].'Gesamtarbeit dieser Woche')

      Ohne der Klammer klappt es jetzt super. 

      Danke für die tolle und schnelle Hilfe :-)

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 4Antworten
  • 70Ansichten
  • 3 Folge bereits