自动展开Excel表格

问题描述 投票:0回答:1

我正在研究一个预测 UFC 比赛的模型,但在从文件中的 2 个不同工作表中检索信息时遇到问题。

我想做的基本上是从可能作为战斗机 1 或战斗机 2 列的特定战斗机检索信息,并将其传递到表格,如下图所示

我已经能够使用以下公式从特定战斗机检索行:

=IF(ROWS($C$14:C14)<=$A$12,INDEX(Fights[Fighter 2],AGGREGATE(15,3,(Fights[Fighter 1] = $B$2) / (Fights[Fighter 1] = $B$2) * (ROW(Fights[Fighter 1]) - ROW(Fights[[#Headers],[Fighter 1]])),ROWS($C$14:C14))), "")

得到如图所示的结果

但是,我无法让表格调整到每个战斗机所需的行数。

我的目标是能够将 2 个表合并为一个表,这样我就可以从战斗机记录中获得一些见解

excel excel-formula datatable
1个回答
0
投票

获取/将数据转换为查询。 (突出显示您的输入数据,然后在数据功能区中从表中获取和转换。

这应该创建一个查询并打开显示该查询的 Power Query 编辑器窗口。在 Power 查询编辑器窗口的第一个功能区中,单击管理 - 参考以基于第一个查询创建第二个查询。当您单击功能区中的“高级编辑器”时,它看起来像这样

let
    Source = Table1, // or whatever the first query is called
in
    Source

更改为

let
    Source = Table1, // or whatever the first query is called
    StatColumnNames = List.RemoveNulls(
        List.Transform(
            Table.ColumnNanes(Source),
            each if Text.StartsWith(_, "Fighter_1_") then
              Text.Range(_, 10)
            else
              null
        )
    ),
    StatColumnValues = List.Transform(
        StatColumnNames,
        each Table.Column(Source, "Fighter_1_" & _) & Table.Column(Source, "Fighter_2_" & _)
    ),
    Locations = List.Repeat(
        Source[Location],
        2
    ),
    // I didn't see a column of fight dates. Is this missing?!? Fix or remove as appropriate
    Dates = List.Repeat(
        Source[Date],
        2
    ),
    Fighters = Source[#"Fighter 1"] & Source[#"Fighter 2"],
    Combined = Table.FromColumns(
        // Column values (a list of lists)
        {Locations, Dates, Fighters} & StatColumnValues,
        // Column titles (a text list)
        {"Location", "Date", "Fighter"} & StatColumnNames
    )
in
    Combined

这将为您的每场比赛提供一个平坦的桌子。将此查询的名称更改为对您有意义的任何名称。

关闭查询编辑器并加载到工作簿中应该会创建一个包含此数据表的新选项卡。当您使用数据功能区的“全部刷新”按钮刷新此表时,该表将会更新。

然后,您可以根据这些数据创建一个数据透视表,允许您按战斗机、日期和位置进行分类,然后根据您的喜好设置数据透视表的格式。

© www.soinside.com 2019 - 2024. All rights reserved.