VicJalan 2024-05-10 20:39 采纳率: 77.8%
浏览 10
已结题

Power query添加列问题

如何用power query添加新列?
现在有[Worker],[Code],[Job Type] 在PQ里, 想添加新的一列,条件是[Worker]一样的话,用此[worker]的[Job type]. 新增列[role]没有空白值。

img

  • 写回答

17条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-05-10 20:40
    关注

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:疏影横斜水清浅,暗香浮动月黄昏。

    在Power Query (现在称为Power Query M 或者 Microsoft Power Query) 中,你可以使用 Group ByDense Distinct 函数来实现这个需求。以下是创建新列 [Role] 的步骤:

    1. 打开 Power Query Editor

      • 在Excel中,选择 "数据" 菜单 > "获取数据",然后选择 "从电子表格" 或者 "从其他源",根据你的数据源导入数据。
    2. 加载数据

      • 在 Power Query Editor 中,你会看到一个名为 "Table1" 或者你数据源名称的工作表。点击 "编辑" 按钮开始编辑查询。
    3. 添加新列

      • 在新的列上,你可以添加一个新的计算列。假设你的 Worker 列是 Worker, Job Type 列是 Job Type,那么在编辑器的公式栏输入以下代码:
    =let 
        // 创建一个新列,用于保存每个 Worker 的 Job Type
        NewRole = DenseDistinct(Worker), 
    
        // 将 Worker 列与 NewRole 列关联,确保每个 Worker 只有一个角色
        GroupedData = Table.Group(Table1, {"Worker"}, {{"Role", each NewRole, type text}}),
    
        // 将原始数据与新角色合并
        FinalTable = Table.AddColumn(GroupedData, "Role", each if [Worker] = [Key] then [Role] else null, type nullable text),
    
        // 删除可能存在的空值(如果需要)
        CleanTable = Table.RemoveNullRows(FinalTable, {"Role"}),
    
    in
        CleanTable
    
    1. 应用更改并关闭编辑器
      • 点击 "关闭 & 应用"(如果是 Power Query M),或者 "主页" > "发布" > "到" > "工作表" 来将更改应用到你的Excel工作表。

    这段代码首先通过 DenseDistinct 函数确定每个 Worker 的唯一 Job Type,然后根据 Worker 值填充 Role 列。RemoveNullRows 可以删除可能出现的空值,但根据你的描述,你希望 Role 列没有空白值,所以这一步可能不是必需的。

    请确保你的数据已经按照预期格式加载,并且 Worker 和 Job Type 列名与上述代码中的列名匹配。如果实际列名不同,只需替换相应的列名即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(16条)

报告相同问题?

问题事件

  • 系统已结题 今天
  • 已采纳回答 5月13日
  • 创建了问题 5月10日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集