2016-11-27 21 views
1

ich eine Tabelle haben, die es nicht tun mit dem ‚ eindeutigen Index in Excel Leistungsabfrage Hinzufügen

Date 
    9/4/2016 
    9/11/2016 
    9/18/2016 
    9/25/2016 
    10/2/2016 
    10/9/2016 
    10/16/2016 
    10/23/2016 
    10/30/2016 
    11/6/2016 
    11/13/2016 
    11/20/2016 
    11/20/2016 

Ich versuche, einen eindeutigen Index-Werte zu‚Datumsspalte‘zuweisen konnte aber benutzerdefinierten Index hinzufügen wie

aussieht Wert 'in Power-Abfrage, die keine Duplizierung überprüft. Auch habe ich versucht, „Date.WeekOfYear“, die Zahl basierend auf Jahr gibt, aber ich will von 1 bis eindeutige Nummern zuweisen .... für Termine wie

Date  Custom_weeknumber 
    9/4/2016  1 
    9/11/2016  2 
    9/18/2016  3 
    9/25/2016  4 
    10/2/2016  5 
    10/9/2016  6 
    10/16/2016  7 
    10/23/2016  8 
    10/30/2016  9 
    11/6/2016  10 
    11/13/2016  11 
    11/20/2016  12 
    11/20/2016  12 

Jede Hilfe wäre hilfreich, danke!

Antwort

2

Unter der Annahme:

  1. Ihre Daten sortiert werden.

  2. Die Zeile nach Duplikaten die Custom_weeknumber aus den Duplikaten erhalten + 1.

Dann können Sie Gruppe von Terminen (mit neuen Spaltennamen zB „DateGroups“ und Oparation „Alle Zeilen“), fügen eine Indexspalte, erweitern Sie das Feld "DateGroups" und entfernen Sie das Feld "DateGroups".

Code-Beispiel in der Energie Abfrage in Excel erstellt:

let 
    Source = Excel.CurrentWorkbook(){[Name="Dates"]}[Content], 
    Typed = Table.TransformColumnTypes(Source,{{"Date", type date}}), 
    Grouped = Table.Group(Typed, {"Date"}, {{"DateGroups", each _, type table}}), 
    Numbered = Table.AddIndexColumn(Grouped, "Custom_weeknumber", 1, 1), 
    Expanded = Table.ExpandTableColumn(Numbered, "DateGroups", {"Date"}, {"DateGroups"}), 
    Removed = Table.RemoveColumns(Expanded,{"DateGroups"}) 
in 
    Removed 
1

Ich würde es auf diese Weise tun (was ein bisschen simplier scheint mir, ich weiß nicht wie verschachtelte Tabellen, wenn es unbedingt erforderlich):

  1. Gruppe von Datumsspalte
  2. Optional: Sortieren
  3. hinzufügen Index
  4. Quelle Registriert Tabelle

Code:

let 
     //Source = Excel.CurrentWorkbook(){[Name="YourTableName"]}[Content], 
     Source = #table(type table [Date = date], {{#date(2016, 10, 12)}, {#date(2016, 10, 13)}, {#date(2016,10,14)}, {#date(2016, 10, 14)}}), 
     GroupBy = Table.RemoveColumns(Table.Group(Source, "Date", {"tmp", each null, type any}), {"tmp"}), 
     //Optional: sort to ensure values are ordered 
     Sort = Table.Sort(GroupBy,{{"Date", Order.Ascending}}), 
     Index = Table.AddIndexColumn(Sort, "Custom_weeknumber", 1, 1), 
     JoinTables = Table.Join(Source, {"Date"}, Index, {"Date"}, JoinKind.Inner) 
    in 
     JoinTables 
Verwandte Themen