【问题标题】:Excel Sum by Month按月计算的 Excel 总和
【发布时间】:2017-11-16 06:34:40
【问题描述】:

您好有以下情况:

A 列中的项目,B 列中的总时间,那么我在列中有 365 个日期。

我想按月汇总列日期。

例如,对于项目 A,我想要在 3 月的总使用时间。 怎么做? 谢谢

【问题讨论】:

  • 时间栏目的是什么?日期列中是否未显示这些值?
  • 这只是 12 个月。你真的需要任何形式的自动化吗?为什么不为第一行手动插入 SUM 函数,然后为其余行自动填充?
  • 它是一个项目持续时间的键。我明白了。
  • 只需插入 =SUM(C2:AG2) 一月即可。
  • 您可以手动制作一个带有总和的表格,然后添加一些自动形式的呈现给用户/客户。

标签: excel date excel-formula sum


【解决方案1】:

因此,有点矫枉过正,但对如何使用 power query 进行此操作很感兴趣,并且有兴趣为 MonthNumber 构建自定义函数。

Powerquery 是 2016 年之前的免费插件,内置于 2016 年

步骤

1) 数据选项卡 (2016) 或 powerquery 选项卡 (2010 至 2016) => 选择 query from table 并确保您的源数据已被选中并显示在弹出窗口中

2) 选择第一个日期列,按住 shift 并选择最后一个日期,然后选择反透视列

3) 确保列属性(您的透视日期)被格式化为日期列

4) 打开高级查询编辑器窗口

letsource之间粘贴以下内容

fnMonthNum = (input) => let
values = {
{"January", "1"},
{"February", "2"},
{"March", "3"},
{"April","4"},
{"May", "5"},
{"June", "6"},
{"July", "7"},
{"August", "8"},
{"September", "9"},
{"October", "10"},
{"November", "11"},
{"December", "12"},
{input, "Undefined"}

},
Result = List.First(List.Select(values, each _{0}=input)){1}
in
Result,

这是用于创建从月份名称返回月份数字的自定义函数的 M 代码。

5) 添加列选项卡 => 添加自定义列,将其重命名为 MonthName 并插入以下文本

=Date.ToText([Attribute],"MMMM")

6) 添加另一个自定义列,将其重命名为 MonthNum 并在此处使用我们的新函数:

= fnMonthNum([MonthName])

7) 删除​​现在不必要的属性列;选择列 => 右键单击​​ => 删除

8) 转换选项卡 => 分组并输入以下内容:

9) 确保 MonthNum 列是数字。

10) 关闭并加载到 => Only create connection, 勾选Add to data model的复选框,然后勾选Load

11) 按照此处的说明:CREATE A PIVOT TABLE USING EXCEL’S INTERNAL DATA MODEL

从功能区中选择 Insert→PivotTable。 “创建数据透视表”对话框打开。

选择使用External Data Source 选项,如图所示,然后单击Choose Connection 按钮。您会看到 Existing Connections 对话框,如图所示。

选择您刚刚为 Table1 创建的查询和数据透视表的目标

12) 根据需要排列字段并在 MonthNum 行字段上按升序排序

13) 插入切片器

注意:您可以引入自定义排序以避免必须使用 MonthNum 列进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    相关资源
    最近更新 更多