Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indexing 特定范围内每次出现时的功率查询/功率BI增量数据_Indexing_Powerbi_Increment_Powerquery_M - Fatal编程技术网

Indexing 特定范围内每次出现时的功率查询/功率BI增量数据

Indexing 特定范围内每次出现时的功率查询/功率BI增量数据,indexing,powerbi,increment,powerquery,m,Indexing,Powerbi,Increment,Powerquery,M,我试图将两个不同工作簿中的工作表与Power Query结合起来,但我在这方面遇到了困难 我不想在一个工作簿中增加“ID”列,因为在另一个工作簿中出现了值。 ID列有带字母标记的行:AB或BE。在这些字母之后,将关联特定的数字范围。对于AB和BE,数字的范围首先是0000到3000,3000到6000,然后是6001到8000,8001到9999 因此,我有以下可能性: 从AB0000到AB3000 从AB3001到AB6000 从AB6001到AB8000 从AB8001到AB9999

我试图将两个不同工作簿中的工作表与Power Query结合起来,但我在这方面遇到了困难

我不想在一个工作簿中增加“ID”列,因为在另一个工作簿中出现了值。

ID列有带字母标记的行:AB或BE。在这些字母之后,将关联特定的数字范围。对于AB和BE,数字的范围首先是0000到3000,3000到6000,然后是6001到8000,8001到9999

因此,我有以下可能性:

  • 从AB0000到AB3000

  • 从AB3001到AB6000

  • 从AB6001到AB8000

  • 从AB8001到AB9999

  • 从BE0000到BE3000

  • 从BE3001到AB6000

  • 从BE6001到BE8000

  • 从BE8001到AB9999

每个类别都与另一个工作簿中“我的专栏”“地理位置”中的特定项目相匹配:

  • 从AB0000到AB3000,是意大利航空公司

  • 从AB3001到AB6000为ItalyB BDE

  • 从AB6001到AB8000是意大利航空公司

  • 从AB8001到AB9999为ItalyB BDE

  • 从BE0000到BE3000是英国皇家航空公司

  • 从BE3001到AB6000,它是UKY BDE

  • 从BE6001到BE8000是UKM ABC

  • 从BE8001到AB9999,它是UKY BDE

因此,我试图找到与第一个AB类别、第二个AB类别、第一个BE类别和第二个类别相关联的最大数字

然后,我想在另一个查询中“引入”这个数字,并在另一个工作簿中每次找到匹配的国家时将其递增。例如:

AB356是第一个工作簿中的最大数字

一旦找到第一个“ItalyB”,除此之外的列将写“AB357”。一旦找到第二个是“ItalyB”,除此之外的列写“AB358”

假设我得到的第一个文件中有以下数据:

  |---------------------|    
  |       Test          |          
  |---------------------|
  |      AB0000         |          
  |---------------------|
  |      AB0001         |            
  |---------------------|
  |      AB3034         |    
  |---------------------|
  |     AB3035          |    
  |---------------------|
  |      AB6005         |    
  |---------------------|
  |      AB6006         |    
  |---------------------|
  |        AB8011       |    
  |---------------------|
  |       AB8012        |    
  |---------------------|
  |       BE0000        |    
  |---------------------|
  |      BE0001         |    
  |---------------------|
  |      BE3091         |    
  |---------------------|
  |      BE3092         |    
  |---------------------|
  |      BE6001         |    
  |---------------------|
  |        BE6002       |    
  |---------------------|
  |      BE6003         |    
  |---------------------|
  |       BE8104        |    
  |---------------------|
  |       BE8105        |    
  |---------------------|
 
和第二个文件,如下所示:

  |---------------------|
  |     ItalyZ ABC      |    
  |---------------------|
  |      ItalyZ ABC     |    
  |---------------------|
  |      ItalyB BDE     |    
  |---------------------|
  |        ItalyZ ABC   |    
  |---------------------|
  |       ItalyB BDE    |    
  |---------------------|
  |      UKM ABC        |    
  |---------------------|
  |      UKY BDE        |    
  |---------------------|
  |     UKM ABC         |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |        UKY BDE      |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
      |---------------------|    
      |       Test          |          
      |---------------------|
      |      AB0002         |          
      |---------------------|
      |      AB0003         |            
      |---------------------|
      |      AB3036         |    
      |---------------------|
      |      AB6007         |    
      |---------------------|
      |        AB8013       |    
      |---------------------|
      |      BE0002         |    
      |---------------------|
      |      BE3091         |    
      |---------------------|
      |      BE3093         |    
      |---------------------|
      |      BE6004         |    
      |---------------------|
      |       BE8105        |    
      |---------------------|
      |       BE8106        |    
      |---------------------|
      |       BE8107        |    
      |---------------------|
      |       BE8108        |    
      |---------------------|
let
    Source = #table({"Prefix", "Seq_Start", "Seq_End","Zone"},
{{"AB",0,2999,"UKM BDE"}, {"AB",3000,4999,"UKM ABC"}, {"AB",5000,7999,"UKY BDE"}, {"AB",8000,9999,"UKY ABC"},{"BE",0,2999,"ITALYZ BDE"},{"BE",3000,4999,"ITALYZ ABC"}, {"BE",5000,7999,"ITALYB BDE"}, {"BE",8000,9999,"ITALYB ABC"}}),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Seq_Start", Int64.Type}, {"Seq_End", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Prefix"}, #"Source data with occurence", {"Unique key Prefix"}, "Source data with occurence", JoinKind.LeftOuter),
    #"Expanded Source data with occurence " = Table.ExpandTableColumn(#"Merged Queries", "Source data with occurence", {"Number"}, {"Number"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Source data with occurence ", each [Number] >= [Seq_Start] and [Number] <= [Seq_End]), 
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Prefix", "Seq_Start", "Seq_End", "Zone"}, {{"NextSeq", each List.Max([Number]) + 1, type number}})
in
    #"Grouped Rows"
那么我的结果如下:

  |---------------------|
  |     ItalyZ ABC      |    
  |---------------------|
  |      ItalyZ ABC     |    
  |---------------------|
  |      ItalyB BDE     |    
  |---------------------|
  |        ItalyZ ABC   |    
  |---------------------|
  |       ItalyB BDE    |    
  |---------------------|
  |      UKM ABC        |    
  |---------------------|
  |      UKY BDE        |    
  |---------------------|
  |     UKM ABC         |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |        UKY BDE      |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
      |---------------------|    
      |       Test          |          
      |---------------------|
      |      AB0002         |          
      |---------------------|
      |      AB0003         |            
      |---------------------|
      |      AB3036         |    
      |---------------------|
      |      AB6007         |    
      |---------------------|
      |        AB8013       |    
      |---------------------|
      |      BE0002         |    
      |---------------------|
      |      BE3091         |    
      |---------------------|
      |      BE3093         |    
      |---------------------|
      |      BE6004         |    
      |---------------------|
      |       BE8105        |    
      |---------------------|
      |       BE8106        |    
      |---------------------|
      |       BE8107        |    
      |---------------------|
      |       BE8108        |    
      |---------------------|
let
    Source = #table({"Prefix", "Seq_Start", "Seq_End","Zone"},
{{"AB",0,2999,"UKM BDE"}, {"AB",3000,4999,"UKM ABC"}, {"AB",5000,7999,"UKY BDE"}, {"AB",8000,9999,"UKY ABC"},{"BE",0,2999,"ITALYZ BDE"},{"BE",3000,4999,"ITALYZ ABC"}, {"BE",5000,7999,"ITALYB BDE"}, {"BE",8000,9999,"ITALYB ABC"}}),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Seq_Start", Int64.Type}, {"Seq_End", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Prefix"}, #"Source data with occurence", {"Unique key Prefix"}, "Source data with occurence", JoinKind.LeftOuter),
    #"Expanded Source data with occurence " = Table.ExpandTableColumn(#"Merged Queries", "Source data with occurence", {"Number"}, {"Number"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Source data with occurence ", each [Number] >= [Seq_Start] and [Number] <= [Seq_End]), 
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Prefix", "Seq_Start", "Seq_End", "Zone"}, {{"NextSeq", each List.Max([Number]) + 1, type number}})
in
    #"Grouped Rows"
我尝试调整一个范围更有限的查询,通过添加类别,我得到了如下查询:

  |---------------------|
  |     ItalyZ ABC      |    
  |---------------------|
  |      ItalyZ ABC     |    
  |---------------------|
  |      ItalyB BDE     |    
  |---------------------|
  |        ItalyZ ABC   |    
  |---------------------|
  |       ItalyB BDE    |    
  |---------------------|
  |      UKM ABC        |    
  |---------------------|
  |      UKY BDE        |    
  |---------------------|
  |     UKM ABC         |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
  |        UKY BDE      |    
  |---------------------|
  |       UKY BDE       |    
  |---------------------|
      |---------------------|    
      |       Test          |          
      |---------------------|
      |      AB0002         |          
      |---------------------|
      |      AB0003         |            
      |---------------------|
      |      AB3036         |    
      |---------------------|
      |      AB6007         |    
      |---------------------|
      |        AB8013       |    
      |---------------------|
      |      BE0002         |    
      |---------------------|
      |      BE3091         |    
      |---------------------|
      |      BE3093         |    
      |---------------------|
      |      BE6004         |    
      |---------------------|
      |       BE8105        |    
      |---------------------|
      |       BE8106        |    
      |---------------------|
      |       BE8107        |    
      |---------------------|
      |       BE8108        |    
      |---------------------|
let
    Source = #table({"Prefix", "Seq_Start", "Seq_End","Zone"},
{{"AB",0,2999,"UKM BDE"}, {"AB",3000,4999,"UKM ABC"}, {"AB",5000,7999,"UKY BDE"}, {"AB",8000,9999,"UKY ABC"},{"BE",0,2999,"ITALYZ BDE"},{"BE",3000,4999,"ITALYZ ABC"}, {"BE",5000,7999,"ITALYB BDE"}, {"BE",8000,9999,"ITALYB ABC"}}),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Seq_Start", Int64.Type}, {"Seq_End", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Prefix"}, #"Source data with occurence", {"Unique key Prefix"}, "Source data with occurence", JoinKind.LeftOuter),
    #"Expanded Source data with occurence " = Table.ExpandTableColumn(#"Merged Queries", "Source data with occurence", {"Number"}, {"Number"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Source data with occurence ", each [Number] >= [Seq_Start] and [Number] <= [Seq_End]), 
    #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Prefix", "Seq_Start", "Seq_End", "Zone"}, {{"NextSeq", each List.Max([Number]) + 1, type number}})
in
    #"Grouped Rows"
let
Source=#表({“前缀”、“顺序开始”、“顺序结束”、“区域”},
{{“AB”,02999,“UKM BDE”},{“AB”,30004999,“UKM ABC”},{“AB”,50007999,“UKY BDE”},{“AB”,80009999,“UKY ABC”},{“BE”,02999,“ITALYZ BDE”},{“BE”,30004999,“ITALYZ ABC”},{“BE”,50007999,“ITALYB BDE”},{“BE”,80009999,“ITALYB ABC”}),
#“更改的类型”=表.TransformColumnTypes(源,{{“Seq_Start”,Int64.Type},{“Seq_End”,Int64.Type}),
#“合并查询”=表.NestedJoin(#“更改类型”、{“前缀”}、#“出现的源数据”、{“唯一键前缀”}、“出现的源数据”、JoinKind.LeftOuter),
#“发生时的扩展源数据”=Table.ExpandTableColumn(#“合并查询”、“发生时的源数据”、{“编号”}、{“编号”}),
#“筛选的行”=表。选择行(#“扩展的源数据及其发生”,每个[Number]>=[Seq\u Start]和[Number]您的查询显示“Table.Group”

你试过合并那两张表吗?我更喜欢“合并并创建新表”

表1和表2的标题不同,首先我对它们进行了均衡。如图中所示。然后合并并创建了新表。下面是代码部分

let
    Kaynak = Table.Combine({#"Puantaj CkrEng", #"Puantaj Genel"}),
    #"Filtrelenen Satırlar" = Table.SelectRows(Kaynak, each ([Firma] <> null)),
    #"Yeniden Sıralanan Sütunlar" = Table.ReorderColumns(#"Filtrelenen Satırlar",{"Firma", "Resource ID", "Görev", "Tarih", "Yevmiye", "HaftaBasi"})
in
    #"Yeniden Sıralanan Sütunlar"
let
Kaynak=Table.Combine({#“Puantaj CkrEng”,#“Puantaj Genel”}),
#“Filtrelen Satırlar”=表。选择行(Kaynak,每个([Firma]null)),
#“Yeniden Sıralanan Sıtunlar”=Table.ReorderColumns(#“filterelenen Satırlar”、{“Firma”、“Resource ID”、“Görev”、“Tarih”、“Yevmiye”、“HaftaBasi”})
在里面
#“Yeniden Sıralanan Sütunlar”

你能模拟出一个你的最终结果应该是什么样子的表格吗?嗨,我添加了一些元素,包括最终结果。我的主要问题之一是,如果我的“记录”以零个观察值(甚至一个)开始,例如UKY BDE,那么计数将从0或1开始,而不是从“5000”开始第一次观察UKY BDE和“5001”.您能提供更多详细信息吗?您的意思是:“Table.Combine(表作为列表,可选列作为任何列)作为表”?编辑了我的答案,并试图用我最好的@tomasmichehi@thanky you我要看一看!但我很难把它应用到我的问题上!非常感谢!我发现你的桌子也需要填充!这很有趣。我想知道是“3068”还是“68”@bibakcamki