2301_77928449 2024-05-22 11:38 采纳率: 22.5%
浏览 17

POWER QUERY怎么把右边的值填充到左边的列

如图所示,先筛选出null,在把右边的值填充到筛选后的null里

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-05-22 11:38
    关注

    引自免费微信小程序:皆我百晓生

    在Power Query(也称为Excel的“数据工具”)中,你可以通过使用“并列”和“合并查询”的方法来实现这个需求。下面是一个详细的步骤指南:

    1. 打开你的Excel文件,选择包含数据的表单,然后点击“数据”菜单 -> “从表格/范围选择数据”,接着点击“确定”。

    2. 在Power Query编辑器中,你会看到左侧的“表1”。首先,我们需要创建一个副本以便操作。点击“表1”,然后在顶部菜单栏点击“ Home ” -> “新建表” -> “复制表”。

    3. 现在有两个表:原表“表1”和新表“表2”。我们将对“表2”进行处理。

    4. 在“表2”上右键点击,选择“排序和过滤” -> “自定义排序”,在弹出的窗口中,按照第一列设置升序排序,确保所有的空值都在顶部。然后取消选中所有行,只选择空白单元格,再次右键点击,选择“删除行”。

    5. 这样,“表2”中只剩下非空值了。接下来,你需要将这两个表连接起来。回到“表1”,点击顶部菜单栏的“Home” -> “合并查询”。

    6. 选择“表2”,然后点击“确定”。

    7. 在合并类型选项中,选择“左外连接”,这样可以保留“表1”中的所有行,即使在“表2”中没有匹配项。点击“OK”。

    8. 此时,你应该能看到一个新的列,它是基于日期字段的名称加上一个后缀(例如,“Date_y”)。你可以将其重命名为与原始列相同的名称,例如“Date”。

    9. 最后,点击“主页” -> “关闭并应用”,将更改应用回Excel工作表。

    以下是整个过程的伪代码,因为Power Query主要是图形用户界面操作,而不是编程语言,所以无法提供完整的代码。如果你想要自动化这个过程,可以尝试使用VBA(Visual Basic for Applications),但Power Query本身并不支持编写代码。

    // 假设你的数据在名为Sheet1的工作表中,且日期列名为"Date"
    
    // 创建Power Query
    let Source = Excel.CurrentWorkbook(){[Name="Sheet1"]}[Content],
    
    // 复制表
    Table2 = Table.Copy(Source),
    
    // 对Table2进行排序和删除空行
    SortedTable2 = Table.Sort(Table2,{{"Date", Order.Ascending}}),
    FilteredTable2 = Table.SelectRows(SortedTable2, each [Date] <> null),
    Table2WithoutNulls = Table.Difference(Table2, FilteredTable2),
    
    // 合并查询
    MergedTable = Table.NestedJoin(Source, {"Date"}, Table2WithoutNulls, {"Date"}, "Table2WithoutNulls", JoinKind.LeftOuter),
    
    // 重命名合并后的列
    RenamedColumns = Table.RenameColumns(MergedTable, {{Table2WithoutNulls[Column1], "Date"}}),
    
    // 关闭并应用更改
    Closed = Table.Close(#"Renamed Columns");
    
    Closed
    

    由于你可能不熟悉Power Query的语法,上述伪代码可能看起来有些复杂。不过,按照前面提供的步骤,你可以在Power Query编辑器中直观地完成这项任务,无需了解具体的语法细节。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月22日