Excel通过Power Query查询Outlook日历时重复事件仅显示一次如何解决
默认Outlook日历Power Query连接器仅会拉取重复日程的母本事件,不会自动展开所有周期实例,相关标识字段默认会被隐藏,可按以下步骤操作实现全量导入:
新建Power Query查询时,在Outlook日历数据源选择界面,不要直接点击「加载」,选择「转换数据」进入Power Query编辑器
在「选择列」菜单中勾选显示
IsRecurring字段,该字段为判断事件是否为重复日程的核心标识筛选
IsRecurring等于TRUE的行,单独处理重复事件,非重复事件可后续合并回结果表选中处理完的重复事件行组,添加自定义列,自定义列公式填写:
= Table.AddColumn(上一步骤名, "RecurrenceInstances", each Outlook.CalendarItemExpanded([Item]).RecurrenceInstances),注意将「上一步骤名」替换为当前操作前一步的步骤名称点击
RecurrenceInstances列右上角的展开按钮,选择「扩展到新行」,即可将每个重复事件的所有周期实例全部展开为单独行展开后提取实例的日期、开始时间、结束时间、主题、地点等你需要的字段,这些字段对应每个单次重复日程的真实属性
筛选
IsRecurring等于FALSE的行,保留和展开后重复日程完全一致的字段规则使用「追加查询」功能,把非重复日程表和展开后的重复日程表合并为一个总表
可选:添加自定义列
事件类型,判断如果IsRecurring为TRUE则标注为重复日程实例,否则标注为单次日程,方便后续工时统计筛选
注意:如果需要限定拉取的日程时间范围,可在展开重复实例前先添加日期筛选条件,避免展开过多无效日程,减少查询加载时间。
内容的提问来源于stack exchange,提问作者Niels Bjørn Hansen

