AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[powerquery](coding)

Martin Hope
RickyRoawsay
Asked: 2025-02-27 05:34:53 +0800 CST

如何在 PowerQuery 中复制 COUNTIF,以计算第 2 列中与第 1 列中每个引用对应的日期戳数

  • 5

我有以下数据集

第 1 列是非唯一的参考 ID 列表 第 2 列包含每次完成面试时的日期戳 第 3 列包含每次发出录用通知时的日期戳

在此处输入图片描述

对于每一个ID,我想统计一下每一次的面试,以及每一次的offer。

在 Excel 中,这将是一个简单的 COUNTIF 公式

powerquery
  • 1 个回答
  • 21 Views
Martin Hope
Kons21
Asked: 2024-11-08 12:52:34 +0800 CST

使用 PowerQuery 确定单元格中姓名列表中的某个姓名是否缺失

  • 5

我想使用 PowerQuery 通过检查另一个包含主管姓名列表的查询来检查某个单元格是否包含主管的姓名,如果主管姓名缺失,则在新列中输入“缺失”。

我的数据集非常大,但我包含了一个小样本来说明我希望最终结果如何出现。

缺少主管签名

powerquery
  • 1 个回答
  • 22 Views
Martin Hope
Karol Duarte
Asked: 2024-10-29 22:13:25 +0800 CST

Power Query 合并表返回预排序的值

  • 5

我有两个表需要使用 ID 列进行合并。它们都有重复的值,但我只需要最大值。因此,我按降序对表进行了排序并删除了重复项。但是,合并表后,合并后的表没有收到最大值,而是返回了排序前的第一个值。

表格如下:

ID 值1
一个 8.7
一个 10.9
b 5.2
丙 9.0
ID 值2
一个 50
b 60
丙 80

我对表格进行了排序并删除了重复项:

ID 值1
一个 10.9
b 5.2
丙 9.0
ID 值2
一个 50
b 60
丙 80

合并后,我得到以下信息:

ID 值1 值2
一个 8.7 50
b 5.2 60
丙 9.0 80

但我想要的是这个:

ID 值1 值2
一个 10.9 50
b 5.2 60
丙 9.0 80

我的代码如下所示:

#first table to be merged
let
    source = Table.Combine({table1, table2}),
    sorted = Table.Sort(source,{{"value1", Order.Descending}}),
    remove_duplicates = Table.Distinct(sorted, {"ID"}),
    table1_final = Table.Sort(remove_duplicates ,{{"ID", Order.Ascending}})

#second table to be merged
    source2 = Table.Combine({table1, table2}),
    sorted2 = Table.Sort(source2,{{"value2", Order.Descending}}),
    remove_duplicates2 = Table.Distinct(sorted2, {"ID"}),
    table2_final = Table.Sort(remove_duplicates ,{{"ID", Order.Ascending}})

#merged table    
    source3 = Table.NestedJoin(table1_final, {"ID"}, table2_final , {"ID"}, "table1_final ", JoinKind.FullOuter),
    expanded = Table.ExpandTableColumn(source3 , "table2_final", {"value2"}, {"value2"})

in
    expanded
powerquery
  • 1 个回答
  • 24 Views
Martin Hope
Forward Ed
Asked: 2024-10-21 16:29:34 +0800 CST

Power Query 代码引用另一个查询(以及缓冲的工作原理)

  • 6

我正在尝试重用 Power 查询来从另一个 Power 查询中提取信息。似乎有多种方法可以做到这一点。我从这个问题中看到了两种方法。我也在我自己的电子表格中看到了它。在我的电子表格中,我显然有:

Source = Excel.CurrentWorkbook(){[Name="Project_List"]}[Content],

在其他查询中我有:

Source = Project_List,

这种方法或另一种方法有什么优点吗?

最终我希望实现的是通过网络查询一次数据,将其转储到表 A 中,然后在后续查询中继续引用表 A,而不是通过网络提取数据进行后续查询。

我注意到,当我使用构建我最近的查询时Source = Project_List,,在后续查询的每个步骤中,它加载实际上重新加载了 Project_list 查询加载的所有文件。

这只是构建过程的一部分吗?或者,如果我有一个通过网络加载的查询 A,并且有 5 个后续查询引用查询 A,那么 Power Query / Excel 会通过网络读取 1 次还是 5 次?

在 Power Query 中引用现有查询并减少跨网络数据提取的正确方法是什么?

powerquery
  • 2 个回答
  • 49 Views
Martin Hope
Forward Ed
Asked: 2024-10-21 14:53:40 +0800 CST

相当于左的 M 代码(字符串,长度(字符串)-11)

  • 7

如何删除列中字符串的最后 X 个字符?

我正在尝试生成一个用户友好的文件名列表,用于生成 Power Query 表。但是,在阅读 m 文本命令列表时,我没有看到一种直接的方法来执行以下等效操作:

 Text.left(#"previous table"{"Filename'}, Text.length(#"previous table"{"Filename'} - 11)

(基于我对 Excel 的了解)。

由于我看到我的文件名长度可变,但我知道我一直想消除最后 11 个字符,所以我想也许我可以使用Text.reverse(#"previous table"{"Filename'})然后在位置 11 处进行拆分,只保留拆分的右侧,然后再进行一次反转。但是我还不太了解 m 语法,当我尝试执行此操作时,我得到的只是一个错误Text.Reverse

我的m代码:

let
    Source = Forecasting,
    #"Removed Other Columns" = Table.SelectColumns(Source,{"Source.Name"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Other Columns"),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Duplicates",{{"Source.Name", "Submitted Reports"}}),
    Custom1 = Text.Reverse(#"Renamed Columns"{{"Submitted Reports"}})
in
    Custom1

当我们进入重命名列步骤时的示例数据:

Submitted Reports
Bug Bunny 241008923443.xlsm
Daffy Duck 241130234521.xlsm
Wyle E. Cayote 240909124312.xlsm

期望结果:

Submitted Reports
Bug Bunny 241008
Daffy Duck 241130
Wyle E. Cayote 240909
powerquery
  • 1 个回答
  • 36 Views
Martin Hope
bilak
Asked: 2024-10-05 02:04:39 +0800 CST

将可重复的子元素转换为列

  • 7

首先,我对 PowerQuery 还很陌生...我有类似下面的 xml:

<root>
  <entries>
    <entry>
      <otherData>
        <id>1</id>
      </otherData>
      <images>
        <image>
          <url>http://example.com/1.img</url>
        </image>
        <image>
          <url>http://example.com/1.img</url>
        </image>
        <image>
          <url>http://example.com/1.img</url>
        </image>
      </images>
    </entry>
    <entry>
      <otherData>
        <id>2</id>
      </otherData>
      <images>
        <image>
          <url>http://example.com/4.img</url>
        </image>
        <image>
          <url>http://example.com/5.img</url>
        </image>
      </images>
    </entry>
  </entries>
<root>

我想要的是一张由id和 基于 的动态列数组成的表/images/image/url。我不知道是否可以动态添加列并以某种方式命名它们(带有数字后缀img1... imgN)

ID 图片1 图片2 图片3
1 http://example.com/1.img http://example.com/2.img http://example.com/3.img|
2 http://example.com/4.img http://example.com/5.img
powerquery
  • 1 个回答
  • 30 Views
Martin Hope
Maria Isabel
Asked: 2024-09-15 04:16:31 +0800 CST

如何根据 Power Query M 中的数据重命名列?

  • 4

我正在编写 Power Query M 脚本,根据某些预定义规则和列名中的关键字重命名列。数据来自不同的数据集,我需要在所有数据集中标准化列名。

我已尝试过:这是我用于重命名的代码的简化版本:

// Function to rename columns
let
    RenameColumns = (xtable as table) as table => 
    let
        // Get current column names
        names = Table.ColumnNames(xtable),
        
        // Transform column names based on the conditions
        transformedNames = List.Transform(names, each
            let colName = _,
                // Exact match renaming
                newName = if colName = "Org Level 2" then "Cost Centers" 
                          else if colName = "Org Level 3" then "Work Assignment Cost Center" 
                          
                          // Keyword-based renaming for Employment Status
                          else if Text.Contains(colName, "Active") or 
                                  Text.Contains(colName, "Terminated") or 
                                  Text.Contains(colName, "Leave of absence") 
                                  then "Employment Status" 
                          
                          // Keyword-based renaming for Full/Part Time
                          else if Text.Contains(colName, "Full-Time") or 
                                  Text.Contains(colName, "Full Time") or 
                                  Text.Contains(colName, "Part Time") 
                                  then "Full/Part Time" 
                                  
                          // Keep original name if no conditions are met
                          else colName
            in newName
        ),
        
        // Rename columns using the transformed names
        renamedTable = Table.RenameColumns(xtable, List.Zip({names, transformedNames}))
    in
        renamedTable
in
    RenameColumns

实际情况:精确匹配重命名按预期工作。但是,包含特定关键字(如“活跃”或“全职”)的列未按预期一致重命名。基于关键字的重命名似乎失败或不正确应用。

如何根据 Power Query M 中名称中的关键字正确重命名列?有没有更好的方法使用 Table.TransformColumnNames 或 Table.RenameColumns 来处理条件重命名?

powerquery
  • 1 个回答
  • 30 Views
Martin Hope
Maria Isabel
Asked: 2024-08-30 01:20:21 +0800 CST

使用 try 和 List.MatchesAny 的 Power Query M 代码中的标记文字预期错误

  • 6

try我正在编写 Power Query M 脚本,以便根据特定条件重命名表中的列。但是,当我尝试在函数内使用表达式时,遇到了“需要标记文字”错误List.MatchesAny。以下是我的代码的相关部分:

RenameColumnsFunction = (table as table) as table => 

let ColumnNames = Table.ColumnNames(table),

//Apply transformation logic to each column name
RenamedColumns = List.Transform(ColumnNames, (colName) =>

// If any column values have a length of 4 and are numeric, rename the column to "Org level 2 Code"


    if 
        List.MatchesAny(Table.Column(table, colName), each try 
        Text.Length(Text.From(_)) = 4 and **try **
        Number.FromText(Text.From(_)) <> null otherwise false) 
        then
        {colName, "Org Level 2 Code"} 

// If the column name matches one of the predefined names, rename it to "Headcount Label"
        
        else if 

        List.Contains({"ACCTG", "ADMIN", "ASM", "AWE", "CFO", "CROCOL", "CUSTSRV", "DEV", "ENGIN","FIN","FLDSP", "HOM", "HR","IT", "MERCH", "PROSVC"}, colName) 
        
        then
        {colName, "Headcount Label"} 
        
        else {colName, colName}  // Keep the original name if no match 
        
        ),
        RenamedTable = Table.RenameColumns(table, RenamedColumns, MissingField.Ignore) 
        
        in RenamedTable, 

// Step 4: Apply the renaming function to each table query
ApplyRename = Table.AddColumn(FilteredQueries, "Transformed Data", each RenameColumnsFunction([Content])), 

// Step 5: Expand the renamed tables (ensure there's data to extract) 
RenamedTables = Table.ExpandTableColumn(ApplyRename, "Transformed Data", Table.ColumnNames(ApplyRename[Content]{0})),

// Step 6: Combine all queries into one table if needed 
CombinedData = Table.Combine(RenamedTables[TransformedData]) 
in 

CombinedData
powerquery
  • 1 个回答
  • 18 Views
Martin Hope
Navin
Asked: 2024-08-01 23:34:05 +0800 CST

比较两个字段的文本包含

  • 7

我有两张表 (table1 和 table2)。我想对这两张表执行内部合并查询。在此处输入图片描述

我想检查表 1 中的部分名称字段是否在表 2 中,可以使用 Text.Contains。我对此不太熟悉。

如果有任何需要,请帮帮我。

powerquery
  • 2 个回答
  • 29 Views
Martin Hope
NCcodes
Asked: 2024-08-01 23:08:20 +0800 CST

如何在 Power Query 中将文本转换为数字?

  • 6

我将时间日期中的时间和分钟分成文本;现在我想将其转换回数字(分钟需要用零填充)。

Filtertime = Number.From(
    Text.From(Time.Hour([Timestamp_Time])) &
    Text.PadStart(Text.From(Time.Minute([Timestamp_Time])), 2, "0" ))

我想要转换的文本列如下:

时间戳时间
下午 2:00:00
下午 2:01:00
下午 2:02:00

转换后的列应为:1400、1401 和 1402。作为参考,我尝试遵循以下链接中的解决方案:https://community.fabric.microsoft.com/t5/Desktop/Slider-Slicer-that-Includes-Time-Not-just-Date/td-p/2572000

目前我收到以下错误:“Expression.Error:有一个未知的标识符。您是否在‘each’表达式之外使用了_[field]的[field]简写?”

powerquery
  • 1 个回答
  • 20 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve