Excel - 如果另一行中存在某个值,则从数据透视表中排除项目

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

我正在尝试创建一个项目列表,其中没有包含特定值的行。

示例:我想转动下表,仅在设备栏中显示没有电视的房间列表。如果成功,我的列表将只包含房间号 102 和 104。

我已尝试使用数据透视表过滤器,但是如果我从设备列中排除电视,则列表仍包括房间 101 和 103,因为存在存在其他设备的行。我尝试过在网上寻找解决方案,但我不太确定如何最好地表达这个问题..!

房间号 设备
101 电视
101 咖啡机
101 水壶
102 咖啡机
102 水壶
103 电视
103 水壶
103 咖啡机
103 台灯
104 水壶
104 台灯

如有任何指导,我们将不胜感激。

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

使用

POWER QUERY
在这里会更合适,因为它可以处理相当多的数据集,因此要使用上述过程实现这一点,请使用POWER QUERY窗口
UI
遵循以下简单步骤:


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

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

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

let
    Source = Excel.CurrentWorkbook(){[Name="Table_1"]}[Content],
    GroupRows = Table.Group(Source, {"Room Number"}, {{"Count", each _, type table [Room Number=number, Equipment=text]}}),
    Counts = Table.AddColumn(GroupRows, "Custom", each Table.RowCount(Table.SelectRows([Count], each ([Equipment] = "TV")))),
    ExpandColumns = Table.ExpandTableColumn(Counts, "Count", {"Equipment"}, {"Equipment"}),
    FilterBy0 = Table.SelectRows(ExpandColumns, each [Custom] = 0),
    ExcludeUnwantedCols = Table.RemoveColumns(FilterBy0,{"Custom"})
in
    ExcludeUnwantedCols


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

或者,正如上面使用

Excel Formulas
所评论的,我会选择分别使用
FILTER()
COUNTIFS()
函数。


=FILTER(A2:B12,COUNTIFS(A2:A12,A2:A12,B2:B12,"TV")=0)

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