在Excel Power Query中创建固定不变的唯一ID作为数据库主键
在Power Query中生成绑定记录的固定唯一ID方案
方法1:基于记录唯一特征生成哈希值
- 提取每条记录中不会变更的唯一特征组合(如原始文件名+订单号、客户ID等原始数据内的唯一标识)
- 使用
HashSHA256函数对特征组合做哈希运算,生成固定唯一ID - 示例代码:
// 假设存在"文件名"和"订单号"两个唯一特征字段 = Table.AddColumn(上一步骤名称, "固定唯一ID", each Text.FromBinary(HashSHA256(Text.ToBinary([文件名] & [订单号])))) - 注意:只要原始记录的特征字段不变,哈希值就不会改变,刷新、追加数据或排序都不会影响ID的唯一性与固定性。
方法2:原始文件名+文件内行号组合
- 在单个文件的查询流程中,添加基于当前文件内数据的行索引(而非合并后的全局索引)
- 合并所有文件后,将文件名与原始行号拼接成唯一ID
- 示例代码:
// 单个文件查询中添加原始行号 = Table.AddIndexColumn(导入的文件数据, "原始行号", 1, 1) // 合并文件夹后生成固定ID = Table.AddColumn(合并后的表格, "固定唯一ID", each [文件名] & "_" & Text.From([原始行号])) - 注意:每个文件内的行号固定,结合唯一文件名,可确保每条记录ID不随后续操作改变,新增文件的记录也会生成独立的唯一ID。
方法3:源头预分配UUID(最可靠)
- 若原始文件可修改,在数据源头为每条记录分配UUID(如Excel中使用自定义UUID函数,或借助Power Pivot生成)
- 在Power Query中直接读取该UUID字段作为固定唯一ID
- 优势:ID完全绑定原始记录,不受任何Power Query操作影响,是最稳定的方案。
内容的提问来源于stack exchange,提问作者Philip M
相关产品推荐
相关产品推荐

