ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 508|回复: 5

[求助] 请教表格转换问题。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-9-17 22:49 | 显示全部楼层 |阅读模式
要求在附件有描述

01.zip

15.75 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2022-9-18 05:20 | 显示全部楼层
解决这种跨日/月/年统计问题的一个常用套路就是把原来的时间做一个OFFSET处理,比如

image.png

数据整理好后在DAX界面里做各种计算
image.png

OFFSET.zip

20.71 KB, 下载次数: 5

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-18 09:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ThxAlot 发表于 2022-9-18 05:20
解决这种跨日/月/年统计问题的一个常用套路就是把原来的时间做一个OFFSET处理,比如

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bZZZbiUhDEW30nrfEcEjdm8lyv630UQBU9zX30fG04Gqr6/X+KRP7kx/4m/vr48XUUvO1/fHA+VC3MJvQn0haebIaDFtMhgYL+ZtBCBZKJqwAtPFrPWO6ezRgADzxXoTw1JGMQuMewwF02WVEgphvKcymiakY6q4hDEzF1KHzllqmDYW4l/Uazve80YrV7bocZOVahYoELMSeVO9wZr97JduYBsYJPF9VBc4a808mrvd5ExcDYKOhiOx0eMhYavlITdJZHzGipWUiN5IkWnl64pn2hEKh7tFzEY4ku1hvk+rNOyzOwGWVUkMyFYePoVi8FAbQXPloTTGUspDns0tJLeHvaWMG9Fe90gI4q0Ih95EtlVU9ckl4lxZxE1sE66bIJeK8ykSv8koexViYt+R0fkmuVeVBjElIjVxAnZEHASV07n7rpDtehExn9YaBUb78DAZSzkPor6VMk53MPmHiOkwxxJRZwdwZInoswPo7vEgkkM+PteTGJwqE2V+XnYteqs4l1BLVVAxDIJKRSvpFVSUcl5RRYM8paLQDcpEY7tJmegEpZWJnhCTtRAyQA8VRy1E31RMgWT/VVHfVGScxfNN7JjPtlPDENWTGB2zlYmBK3l8mZnxxGOiBRz5MJHf2DFRYgA7JoZj3DExY2tgaOIQu1GZmKk3KRPD6CZlorPfpExMgRLKxOgQ4/u0XpfLLhXn74EDiXocfv4Fv/8B", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [TimeStamp = _t, Value = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"TimeStamp", type datetime}, {"Value", type number}}),
    Offset = Table.AddColumn(#"Changed Type", "Offset", each let offset = [TimeStamp] - #duration(0,9,0,0) in [Date = Date.From(offset), Index = Time.Hour(offset)]),
    #"Expanded Offset" = Table.ExpandRecordColumn(Offset, "Offset", {"Date", "Index"}),
    #"Extracted Time" = Table.TransformColumnTypes(#"Expanded Offset",{{"TimeStamp", type time}})
in
    #"Extracted Time"

感谢大神的帮助,学习理解中。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-19 23:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ThxAlot 发表于 2022-9-18 05:20
解决这种跨日/月/年统计问题的一个常用套路就是把原来的时间做一个OFFSET处理,比如

大神,再请教你一个周的的跨年衔接问题。

周的的跨年衔接.zip

85.58 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2022-9-22 00:43 | 显示全部楼层
image.jpg
let
    源 = Excel.CurrentWorkbook(){[Name="表1_2"]}[Content],
    自定义1 = Table.AddColumn(源,"日期",each [时间]),
    自定义2 = Table.TransformColumns(自定义1,{{"时间",each if DateTime.Time(_)<#time(9,0,0) then "次日"&Time.ToText(DateTime.Time(_)) else DateTime.Time(_)},{"日期",each if DateTime.Time(_)<#time(9,0,0) then Date.ToText(Date.AddDays(DateTime.Date(_),-1)) else Date.ToText(DateTime.Date(_))}}),
    自定义3 = Table.Pivot(自定义2,List.Distinct(自定义2[日期]),"日期","值"),
    #"9-23" = List.Transform(List.Skip(Table.ToColumns(Table.SelectRows(自定义3,each try Time.Hour([时间])>8 otherwise false))),List.Sum),
    #"0-8" = List.Transform(List.Skip(Table.ToColumns(Table.SelectRows(自定义3,each try Time.Hour([时间])<8 otherwise true))),List.Sum),
    合计 = List.Transform(List.Skip(Table.ToColumns(自定义3)),List.Sum),
    自定义4 = 自定义3 & Table.FromRows(List.Transform(List.Zip({{{"9-23"},{"0-8"},{"合计"}},{#"9-23",#"0-8",合计}}),List.Combine),Table.ColumnNames(自定义3))
in
    自定义4

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-22 10:25 | 显示全部楼层
hbzql 发表于 2022-9-22 00:43
let
    源 = Excel.CurrentWorkbook(){[Name="表1_2"]}[Content],
    自定义1 = Table.AddColumn(源, ...

感谢回复,4楼跨年周的问题可以解决么?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 13:51 , Processed in 0.043974 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表