如何使用数据透视表或公式在 Excel 中创建 2D 表格,其中结果单元格不仅包含值还包含字符?

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

考虑下表,其中提到了 3 个人的办公室和居住城市。

输入表

Input Table

我需要创建一个如下所示的二维表。

输出表

Output Table

我尝试使用数据透视表,但它仅显示计数或非重复计数,而不显示单元格中的确切值。

建议我使用公式或 VB 代码来执行此操作,因为我非常需要此操作,如果我有一个结构,我可以为每个 Excel 文件复制此操作并节省大量时间。我的 Excel 有数百个单元格,手动操作会变得很复杂。

excel excel-formula pivot-table
1个回答
0
投票

有很多方法可以做到这一点,也许为了可读性和简单性,可以使用

PIVOTBY()
使用 MS365 Beta 版本启用。


• 单元格中使用的公式 E1

=PIVOTBY(A2:A7,C2:C7,B2:B7,ARRAYTOTEXT,,0,,0)

或者,使用名为

LAMBDA()
MAKEARRAY()
辅助函数来创建所需的数据结构。

=LET(
     _Names, A2:A7,
     _Location, B2:B7,
     _LDetails, C2:C7,
     _uniqueNames, UNIQUE(_Names),
     _uniqueLDetails, TOROW(UNIQUE(_LDetails)),
     _rows, ROWS(_uniqueNames),
     _columns, COLUMNS(_uniqueLDetails),
     _databody, MAKEARRAY(_rows,_columns,LAMBDA(r,c,IFERROR(FILTER(_Location,(INDEX(_uniqueNames,r)=_Names)*(INDEX(_uniqueLDetails,c)=_LDetails),""),""))),
     _headers, HSTACK("Names",_uniqueLDetails),
     VSTACK(_headers,HSTACK(_uniqueNames,_databody)))

Power Query
,提供
Windows Excel 2010+
Excel 365 (Windows or Mac)
*。


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

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

  • 接下来,从 Data 选项卡 --> 获取和转换数据 --> 获取数据 --> 来自其他来源 --> 空白查询
  • 打开一个空白查询

  • 上面的内容让 Power Query 窗口打开,现在从 Home 选项卡 --> 高级编辑器 --> 通过删除您看到的任何内容来粘贴以下 M-Code,然后按 Done

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Pivoted Column" = Table.Pivot(Source, List.Distinct(Source[#"Location Details"]), "Location Details", "Location")
in
    #"Pivoted Column"


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

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