Forum Discussion
Issue with Formulas - When Multiple Rows Similar Rows Exist
- 4 months ago
Hi agraca75 ,
Thanks for the update.
To avoid hardcoding and reduce errors, you can use a reference table with From and To dates for each fiscal month. Then, map your data against this table by matching each date to the corresponding From-To range to determine the fiscal month dynamically.
This approach is easier to maintain, as you only need to update the table when there are changes in the fiscal calendar.
Thank you!
agraca75 wrote:Das führt zu einer größeren Frage, ...
...
Anstatt die Daten in den Code festzukodieren, ist es also möglich, eine Tabelle mit den Daten zu referenzieren?
****************************************************************************************************************
Wenn das die Frage ist, dann kann die mit ja beantwortet werden.
In meinem Post vom Donnerstag (23.4.) referenziere ich im 7. Schritt (im übersetzen Code der Schritt AddHolidaycheck) die Feiertagstabelle. Im Schritt 3 (im übersetzen Code jetzt AddDateListColumn) erstelle ich eine Liste aller Tage zwischen den Start und Enddaten.
Du kannst also sowohl die Feiertagstabelle als auch die Tageslisten ganz konkret referenzieren, ohne jeden einzelnen Tag hart codieren zu müssen.
Damit Du das besser nachvollziehen kannst, stelle ich Dir mal den Code mit angepassten, englischen Schrittbezeichnungen ein:
Hier der Code zum direkten kopieren:
let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
ChangeDateToNumber = Table.TransformColumnTypes(Quelle,{{"Start", Int64.Type}, {"Ende", Int64.Type}}),
AddDateListColumn = Table.AddColumn(ChangeDateToNumber, "Datum", each {[Start]..[Ende]}),
ExpandDateListColumn = Table.ExpandListColumn(AddDateListColumn, "Datum"),
ChangeDatetype = Table.TransformColumnTypes(ExpandDateListColumn,{{"Datum", type date}, {"Ende", type date}, {"Start", type date}}),
AddWeekday = Table.AddColumn(ChangeDatetype, "Weekday", each Date.DayOfWeekName([Datum])),
AddHolidaycheck = Table.AddColumn(AddWeekday, "istFeiertag", each List.Contains(tblHolidays[Datum],[Datum])),
DeleteAllWeekendRrows = Table.SelectRows(AddHolidaycheck, each ([Weekday] <> "Samstag" and [Weekday] <> "Sonntag")),
DeleteHolidayRows = Table.SelectRows(DeleteAllWeekendRrows, each ([istFeiertag] = false)),
CountGroupedRows = Table.Group(DeleteHolidayRows, {"Start", "Ende", "Code"}, {{"Difference", each Table.RowCount(_), Int64.Type}})
in
CountGroupedRowsDie deutschen Wochenendbezeichnungen im Schritt DeleteAllWeekendRrows
...each ([Weekday] <> "Samstag" and [Weekday] <> "Sonntag"))musst Du bei Dir manuell anpassen.
Beachte bitte, meine Beispielquelltabelle (die blaue) hat nur 3 Spalten. Die Überschriften beider Tabellen müssen, wenn Du sie nachstellen willst, natürlich mit denen vom Bild identisch sein oder falls Du eigene verwendest, im Code angepasst werden.
Das Ergebnis der Abfrage tblSolution siehst Du im PQ Editor.