Excel按月计算

时间:2017-11-16 06:34:41

标签: excel date excel-formula sum

您有以下情况:

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

enter image description here

我想按月汇总列日期。

例如,我希望在3月份的项目A中,采用总时间。 怎么做? 感谢

1 个答案:

答案 0 :(得分:1)

所以,有点矫枉过正,但对如何使用电源查询感兴趣,并有兴趣为MonthNumber构建自定义函数。

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

<强> STEPS

1)数据标签(2016)或powerquery标签(2010年至2016年)=&gt;选择query from table并确保您的源数据已选中并显示在弹出窗口

Selecting data

Query from table window

2)选择第一个日期列,按住shift键并选择上一个日期,然后选择unpivot columns

Unpivot all date columns

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

Format date column

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

Opening advanced query editor

并将以下内容粘贴到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代码,该函数从月份名称返回月份数。

Adding custom function code in query editor window

5)添加列标签=&gt;添加自定义列,将其重命名为MonthName并插入以下文本

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

Adding MonthName formula

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

= fnMonthNum([MonthName])

Using custom function to return Month Number from Month Name

7)删除现在不必要的属性列; select column =&gt;右键单击=&gt;除去

Remove attribute column

8)转换标签=&gt;分组并输入以下内容:

Grouping options

9)确保MonthNum列是数字。

Converting MonthNum column to numeric

10)关闭并加载到=&gt; Only create connection,      勾选Add to data model,然后Load

的复选框

Load option - connection only, add to data model

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

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

Creating pivottable from our query

选择使用External Data Source选项,如图所示,然后点击Choose Connection按钮。您将看到“现有连接”对话框,如图所示。

选择您刚为Table1创建的查询和pivottable

的目标

Selecting destination for pivottable

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

Arrange pivottable

13)插入切片器

Slicer insert

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