按日期分组数据

按日期分组数据

我如何获取数据列表并按日期分组?

在此处输入图片描述

在此处输入图片描述

答案1

有很多方法可以做到这一点,以下是几种可能的方法:

使用UNIQUE()TOROW()&FILTER()函数:

在此处输入图片描述


• 单元格中使用的公式D2

=UNIQUE(A2:A21)

• 单元格中使用的公式E2

=TOROW(FILTER(B$2:B$21,D2=A$2:A$21))

或者,使用单一公式动态溢出:

在此处输入图片描述


=LET(
     _data, A2:B21,
     _date, TAKE(_data,,1),
     _udate, UNIQUE(_date),
     _rows, ROWS(_udate),
     _columns, MAX(COUNTIFS(_date,_date)),
     _databody, MAKEARRAY(_rows,_columns,LAMBDA(r,c, INDEX(FILTER(DROP(_data,,1),_date=INDEX(_udate,r),""),c))),
     VSTACK(HSTACK(A1,B1&"_"&SEQUENCE(,_columns)),HSTACK(_udate,IFERROR(_databody,""))))

或者,使用REDUCE()

=LET(
     _Date, A2:A21,
     _Desk, B2:B21,
     _Udate, UNIQUE(_Date),
     _Headers, HSTACK(A1,B1&"_"&SEQUENCE(,MAX(COUNTIFS(A2:A21,A2:A21)))),
     IFERROR(REDUCE(_Headers,_Udate,LAMBDA(r,c,VSTACK(r, HSTACK(c,TOROW(FILTER(B2:B21,A2:A21=c,"")))))),""))

这也可以使用Excel 365(Windows 或 Mac)Power Query中提供的Windows Excel 2010+

在此处输入图片描述


要使用 Power Query,请按照以下步骤操作:

  • 首先将源范围转换为表格并进行相应命名,在此示例中,我将其命名为Table1

  • Data接下来,从Tab --> Get & Transform Data--> Get Data--> From Other Sources-->打开一个空白查询Blank Query

  • 上面的命令可以Power Query打开窗口,现在从HomeTab --> Advanced Editor--> 删除您看到的任何内容并粘贴以下内容M-Code,然后按Done

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    GroupByDate = Table.Group(Source, {"Date"}, {{"Custom", each Table.AddIndexColumn(_, "Index", 1, 1, Int64.Type),type table}}),
    ExpandingData = Table.ExpandTableColumn(GroupByDate, "Custom", {"Desk", "Index"}, {"Desk", "Index"}),
    Formatting = Table.TransformColumns(ExpandingData, {{"Index", each "Desk " & Text.From(_, "en-US"), type text}}),
    PivotColumns = Table.Pivot(Table.TransformColumnTypes(Formatting, {{"Index", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(Formatting, {{"Index", type text}}, "en-US")[Index]), "Index", "Desk"),
    DataTypeChanged = Table.TransformColumnTypes(PivotColumns,{{"Date", type date}, {"Desk 1", type text}, {"Desk 2", type text}, {"Desk 3", type text}, {"Desk 4", type text}, {"Desk 5", type text}, {"Desk 6", type text}, {"Desk 7", type text}})
in
    DataTypeChanged

在此处输入图片描述


  • 最后,将其导回Excel--> 单击Close & LoadClose & Load To--> 第一个单击的将创建一个New Sheet具有所需输出的,而后者将提示一个窗口询问您将结果放在何处。

相关内容