POWER查询中的局部组聚合

在查看PowerQuery库引用时,我注意到Table.Group()函数有一个非常有用的选项,可以使用它所称的本地组来聚合数据。与其解释它的作用,不如让我向您展示…

下表显示1月份的所有日子,以及2014年1月某一天雇员是否休假、上班或休病假:

将其导入POWER查询并查找用于每个活动的天数,使用按组电源查询窗口中的功能。下面是UI生成的脚本:

let
Source = Excel.CurrentWorkbook(){[Name="Calendar"]}[Content],
GroupedRows = Table.Group(Source, {"Activity"},
{{"Count of Days", each Table.RowCount(_), type number}})
in
GroupedRows

这是它产生的输出:

到目前一切尚好。但是,了解每一项活动的不同时间范围不是很有用吗?例如,您可以从第一张截图中看到,这位员工从1月17日(星期五)到1月21日(星期二)病假,然后又从1月24日(星期五)到1月27日(星期一)请病假;您可能希望看到这些员工被合并为两个不同的时间段。Group()还允许您这样做。

首先,下面是一个带有示例的脚本:

let
Source = Excel.CurrentWorkbook(){[Name="Calendar"]}[Content],
FilteredRows = Table.SelectRows(
Source
, each ([Day Of Week] <> "Saturday" and [Day Of Week] <> "Sunday")),
TimeRanges = Table.Group(
FilteredRows
, "Activity"
, {
{"Start Date", each List.Min([Date]), type date}
, {"End Date", each List.Max([Date]), type date}
, {"Number of Days", each List.Count([Date]), type number}
}
, GroupKind.Local)
in
TimeRanges

这是输出:

从这张截图中你可以看到,我现在连续每一天都有一行(不考虑周末),不管是在度假、工作还是请病假。

一步一步地,下面是对脚本中所发生的事情的解释:

  • 来源

    从工作表中的表中导入数据。

  • 过滤柱

    过滤掉周末的日子

  • 时间范围

    使用Table.group函数来完成所有有趣的事情:

    • 它接受FilteredRows步骤返回的表

    • 组是否在活动列上

    • 它计算日期列的min、max和计数,并将它们添加为新列。

    • 本地可选参数是获取您在这里看到的行为的关键。默认的分组类型GroupKind.Global通过整个表执行一个标准组,如上面的第一个示例所示。GroupKind.Local只在连续的行序列上进行聚合,这意味着我们看到了活动“工作”的三个不同的时间范围和“生病”的两个单独的组。

(0)

相关推荐

  • 使用Python和SAS Viya分析社交网络

    原文链接:http://tecdat.cn/?p=7303 本示例使用Python和SAS分析了预防高危药物研究的结果.这个社交网络有194个节点和273个边,代表药物.使用者之间的联系. 背景 SA ...

  • 使用 SAP HANA Virtual Table 连接外部数据源

    Access Remote Sources with SAP HANA Database Explorer 远程源(Remote sources)是与其他数据库的连接. 虚拟表使用远程源创建指向存储在 ...

  • MySQL 学习笔记 (一)

    MySQL 学习笔记 (一)

  • Excel-VBA编程操作透视表Pivot Table代码大全

    2021-02-12 08:00:00 www.thespreadsheetguru.com 转贴 1611 Excel的Pivot Table在我们平时的办公场景 学习 以及 工作中都常用到,但如果 ...

  • MySQL性能分析show profiles详解

    前言 前几篇文章我们讲了什么是 MySQL 索引,explain分析SQL语句是否用到索引,以及索引的优化等一系列的文章,今天我们来讲讲Show profiles,看看SQL耗时到底出现在哪个环节. ...

  • Table.Group:POWERBI和POWER查询中的第5参数探索

    在这篇文章中,我将向您展示使用表的第5个参数(可选的比较器函数)所能做的神奇事情.PowerBI和Power查询中的组M-函数:表.组参数作为桌子,钥匙和其他东西一样,集合柱作为列表,可选的group ...

  • Power Query中的“追加查询”

    今天跟大家讲解下PQ中的追加查询. 通过讲解合并工作表和工作簿,来实现深入理解PQ追加查询. 01 PQ追加查询合并工作表 案例 老板给我们发过来一个Excel表格,里面包含了100 个sheet表格 ...

  • 如何学塔罗牌占卜,塔罗牌中常用的组合法解读技巧!

    大家好,我是占卜师拾月,一名全职塔罗师,可提供塔罗一对一占卜,塔罗教学等服务!我们在学习塔罗牌占卜时,其实有很多不同的解读方式和思路,没有固定的解读模式,因此学塔罗一定要灵活运用在具体牌阵中.特别是数 ...

  • 【衡道丨干货】术中直接免疫组化在乳腺病理诊断中的应用

    病理科是大型综合医院必不可少的科室之一,其主要任务是在医疗过程中承担病理诊断工作,包括通过活体组织检查.脱落和细针穿刺细胞学检查,为临床提供明确的病理诊断,确定疾病的性质.与其他诊断手段如B超.常规放 ...

  • 中低位局部进展期直肠癌全程新辅助治疗的研究进展

    作者:李干斌, 韩加刚, 王振军 文章来源:中华外科杂志, 2021, 59(5) 摘  要 新辅助放化疗增加了对进展期直肠癌的局部控制作用,但无法显著降低远处转移率和改善生存预后仍是该治疗策略的不足 ...

  • 为什么Power Query中的筛选内容显示不全?

    小勤:为什么在PQ里筛选的老显示这个? 大海:当数据比较多的时候,就经常会这样显示. 小勤:有什么规律吗? 大海:据了解,PQ首先是检测表中的前1000行数据的不重复值来提供筛选选项的,当数据超过10 ...

  • Power BI中如何实现类似Excel中的逆序坐标图?

    小勤:大海,Power BI里面怎么实现逆序刻度图?比如我想分析学生多次考试成绩的名次变化趋势,由于名次数据越小越好,比如第1名要好过第2名,所以,数据小的应该显示在数据大的上方.在Excel里,可以 ...

  • 如何将Power Pivot中的数据模型导入Power BI?

    新书已在当当.京东全面发售购书可领60元额外视频优惠券小勤:怎么将Excel里Power Pivot的数据模型导入到Power BI里啊?大海:这个现在好简单哦.直接导入就可以了.小勤:啊?从Exce ...

  • 病理报告中的免疫组化到底有什么作用?

    俗话说:"金钱不是万能的,但没有钱是万万不行的."套用在病理学诊断上,可以说:"免疫组化不是万能的,但是没有免疫组化是万万不行的." 现在的病理报告,特别是肿瘤 ...