Clever-Excel-Forum

Normale Version: Power Query - Bedingte Spalte - Verzweigt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich versuche gerade ohne unzählige Hilfsspalten folgenden Ansatz abzubilden.
ich habe in Spalte 1 das Datum und in Spalte 2 die Dauer.
Ist der Wochentag 0-4, so möchte ich die Dauer erhalten.
Ist die Dauer > 0.8:00:00, so soll 0.8:00:00 abgebildet werden.
Ist der Wochentag >4, so möchte ich die Dauer erhalten, maximal aber 0.10:00:00.

Wie ist dies nun in powerQuery umzusetzen?

Beste Grüße[attachment=20695]


In etwa so?

if Date.DayOfWeek([Day]) > 4 and [Value] > #duration (0.08:00:00) then
Hallo

Geht sicher noch besser:

Code:
let
    Source = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Day", type datetime}, {"Value", type duration}}),
    #"Inserted Day of Week" = Table.AddColumn(#"Changed Type", "Tag der Woche", each Date.DayOfWeek([Day]), Int64.Type),
    #"Added Custom" = Table.AddColumn(#"Inserted Day of Week", "08 Stunden", each "0.08:00:00"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"08 Stunden", type duration}}),
    #"Added Custom1" = Table.AddColumn(#"Changed Type1", "10 Stunden", each "0.10:00:00"),
    #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom1",{{"10 Stunden", type duration}}),
    #"Added Conditional Column" = Table.AddColumn(#"Changed Type2", "Benutzerdefiniert", each if [Tag der Woche] < 5 and [Value] > [08 Stunden] then [08 Stunden] else if [Tag der Woche] > 4 and [Value] > [10 Stunden] then [10 Stunden] else [Value]),
    #"Changed Type3" = Table.TransformColumnTypes(#"Added Conditional Column",{{"Benutzerdefiniert", type duration}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type3",{"Value", "Tag der Woche", "08 Stunden", "10 Stunden"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Benutzerdefiniert", "Value"}})
in
    #"Renamed Columns"
Vielen Dank!

So ähnlich habe ich es bisher auch umgesetzt.

Ist es nicht möglich dies innerhalb einer If then else umzusetzen?


Gruß
Bestimmt. Vielleicht bekommt es jemand anders hin.
so ?? 

Arbeitsblatt mit dem Namen 'Tabelle1'
ABCD
1DayValue
220.11.20180.07:10:00Di
321.11.20180.07:15:00Mi
422.11.20180.08:55:0108:00:00Do

ZelleFormatWert
A2TT.MM.JJJJ20.11.2018
C2[$-F400]h:mm:ss AM/PM
A3TT.MM.JJJJ21.11.2018
C3[$-F400]h:mm:ss AM/PM
A4TT.MM.JJJJ22.11.2018
C4[$-F400]h:mm:ss AM/PM0,333333333333333

ZelleFormel
C2=WENN(UND(ODER(TEXT(A2;"ttt")="Mo";TEXT(A2;"ttt")="Di";TEXT(A2;"ttt")="Mi";TEXT(A2;"ttt")="Do");(RECHTS(B2;LÄNGE(B2)-2)*1)>ZEIT(8;0;0));ZEIT(8;0;0);WENN(UND(ODER(TEXT(A2;"ttt")="Fr";TEXT(A2;"ttt")="Sa";TEXT(A2;"ttt")="So");(RECHTS(B2;LÄNGE(B2)-2)*1)<=ZEIT(10;0;0));(RECHTS(B2;LÄNGE(B2)-2)*1);""))
D2=TEXT(A2;"ttt")
C3=WENN(UND(ODER(TEXT(A3;"ttt")="Mo";TEXT(A3;"ttt")="Di";TEXT(A3;"ttt")="Mi";TEXT(A3;"ttt")="Do");(RECHTS(B3;LÄNGE(B3)-2)*1)>ZEIT(8;0;0));ZEIT(8;0;0);WENN(UND(ODER(TEXT(A3;"ttt")="Fr";TEXT(A3;"ttt")="Sa";TEXT(A3;"ttt")="So");(RECHTS(B3;LÄNGE(B3)-2)*1)<=ZEIT(10;0;0));(RECHTS(B3;LÄNGE(B3)-2)*1);""))
D3=TEXT(A3;"ttt")
C4=WENN(UND(ODER(TEXT(A4;"ttt")="Mo";TEXT(A4;"ttt")="Di";TEXT(A4;"ttt")="Mi";TEXT(A4;"ttt")="Do");(RECHTS(B4;LÄNGE(B4)-2)*1)>ZEIT(8;0;0));ZEIT(8;0;0);WENN(UND(ODER(TEXT(A4;"ttt")="Fr";TEXT(A4;"ttt")="Sa";TEXT(A4;"ttt")="So");(RECHTS(B4;LÄNGE(B4)-2)*1)<=ZEIT(10;0;0));(RECHTS(B4;LÄNGE(B4)-2)*1);""))
D4=TEXT(A4;"ttt")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Vielen Daank!

Ziel ist jedoch die Umsetzung in Power Query