indexing - Power Query / Power BI 在每次出现时以特定范围递增数据
问题描述
我正在尝试将来自两个不同工作簿的工作表与 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是意大利Z ABC
从 AB3001 到 AB6000 是意大利 B BDE
从 AB6001 到 AB8000 是 ItalyZ ABC
从 AB8001 到 AB9999 是意大利 B BDE
从 BE0000 到 BE3000 是 UKM ABC
从 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"
解决方案
您的查询显示“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"
推荐阅读
- sql - 我如何使用 Microsoft SQL MANAGER 上的 SQL 过滤这个新的 IIF 列的位置
- grid - 顺风网格部分的自动高度
- javascript - 插入jquery javascript后选择元素
- jboss - 迁移到 JBOSS 7.4 和 Java11 后未正确注入 EJB 无状态 bean
- pyspark - 如何在 Spark 中将文件路径值读取为列?
- javascript - 蚂蚁设计定制主题vue
- node.js - TypeError:无法在nodejs中读取null的属性“文件”?
- python - 在 Python 中访问具有相同父名称的其他模块的问题
- spring-boot - 'liquibase' 和 'entityManagerFactory' 之间的循环依赖关系
- android - 如何判断我在 Android 代码中运行的是什么设备