![如何在 Excel 过滤器中创建新的选项框并对 Excel 中的多列应用单个过滤器?](https://linux22.com/image/1596034/%E5%A6%82%E4%BD%95%E5%9C%A8%20Excel%20%E8%BF%87%E6%BB%A4%E5%99%A8%E4%B8%AD%E5%88%9B%E5%BB%BA%E6%96%B0%E7%9A%84%E9%80%89%E9%A1%B9%E6%A1%86%E5%B9%B6%E5%AF%B9%20Excel%20%E4%B8%AD%E7%9A%84%E5%A4%9A%E5%88%97%E5%BA%94%E7%94%A8%E5%8D%95%E4%B8%AA%E8%BF%87%E6%BB%A4%E5%99%A8%EF%BC%9F.png)
我有一张 Excel 工作表。在 A 列中,有一个对象列表(大约 50 个);在其他列中列出了这些对象的特征。E、F、G 列对我来说特别重要。它们包含数值,例如1
、7
等,数字字母值,例如16B
、,17C
还有逗号分隔的值,这些值至少包含几个数字和/或数字字母值,例如24, 13B, 15G
或17A, 20B, 16
。这些列中还有一些空单元格。以下是工作表。
我想在 E、F、G 列上使用过滤器。
这就是我希望过滤器是。
这就是他们目前的做法是。
例如,我想按数字字母值(如“17C”)过滤 F 列。理想情况下,剩余的单元格将是包含“17C”的单元格,例如,,,17C
等。17C, 24A
16B, 17B, 17C, 24A, 24F
另外,我想用数值(例如“6”)过滤 F 列。理想情况下,剩下的单元格将是包含“6”的单元格,例如1, 2, 3, 6, 12, 13, 15, 20
、6
,但不6E, 7C, 13C
、6A
、 或16B, 17A, 19C
。
我希望能够过滤列中使用的所有可能值,1
即1B
,,,,,,... ,,,,等等。2
2D
2E
20
24A
24F
我想对 E、F 和 G 列应用此类过滤。
如果我可以不使用辅助列,那就太好了。但如果没有它们就不可能做到,那么我会很乐意使用它们。
我希望我已经清楚地表达了我的挣扎。
答案1
选择所有三列,然后选择功能区中的筛选按钮。您可以取消全部选择,然后在每列中选择 13。
现在我阅读了您更新的详细信息,请尝试选择所有三列、条件格式、突出显示单元格规则、包含“13”的文本。
答案2
我从未听说过 Excel 本身具有此类功能。不过,我构建了一个解决方案,我相信它可以提供您想要的结果。
假设您在问题中显示的列布局是准确的:
在单元格中
I2
输入公式=OR(AND(E2=$H$1,E2<>""), LEFT(E2, LEN($H$1)+1)=($H$1&","), RIGHT(E2, LEN($H$1)+1)=(" "&$H$1), NOT(ISERROR(SEARCH(" "&$H$1&",", E2)))) =OR(AND(E2=$H$1,E2<>""), LEFT(E2, LEN($H$1)+1)=($H$1&","), RIGHT(E2, LEN($H$1)+1)=(" "&$H$1), NOT(ISERROR(SEARCH(" "&$H$1&",", E2))))
这将是一个辅助列。稍后我将详细讨论此公式。现在,请注意它引用了
E2
多次。这是在测试 中的值E2
;即 ColumnE
。将单元格拖拽/填充
I2
到右侧单元格K2
。现在 中的公式J2
正在测试 列F
并且K2
正在测试 列G
。辅助列可以放在任意位置。您可以将上述公式放在 列 中
X
,Y
并且Z
如果您愿意 — 或AE
,AF
和 中AG
。- 在单元格 中
H2
输入=OR(I2:K2)
。显然,如果您重新定位了I
--辅助列,J
请K
调整它以匹配。 - 选择辅助列单元格(
H2
通过K2
,或放置它们的任何位置)并向下拖动/填充以覆盖所有包含数据的行。 - 篩選列
H
。
现在,
- 在单元格中输入字母数字值, 如
1B
或 。17A
24
H1
- 激活列上的过滤器
H
以仅显示真的值。现在您将仅看到列F
或 包含您在 中输入的值的G
行。H
H1
未过滤:
已筛选:
好的;辅助列中的公式(上面描述为I
、J
和 K
)如下所示
=或(表达式1,表达式2,表达式3,表达式4)其中四个表达式为:
AND(E2=$H$1,E2<>"")
。这将测试 Column 中的值是否E
等于 中的值H1
(但不为空)。例如,如果 中的值为 ,则这将为E3
TRUE 。H2
24
LEFT(E2, LEN($H$1)+1)=($H$1&",")
。这将测试 Column 中的值是否E
以 中的值开头H1
。更准确地说, Column 中的值是否E
以 中的值开头,H1
后跟逗号。因此,例如,对于 ,F3
这将为 TRUE ,但对于或 ,16B
这将为 FALSE 。1
16
RIGHT(E2, LEN($H$1)+1)=(" "&$H$1)
。与上述相同;这将测试 Column 中的值是否E
以 中的值结尾H1
。更准确地说,测试 Column 中的值是否E
以 中的值结尾H1
,且前面有一个空格。因此,例如,对于 ,F3
这将为 TRUE ,但对于或 ,19C
这将为 FALSE 。9C
C
注意,上面三个测试都是不区分大小写的,因为 Excel中不区分大小写。
string1 = string2
NOT(ISERROR(SEARCH(" "&$H$1&",", E2)))
。这将测试 Column 中的值是否E
包含 中的值H1
。更准确地说, Column 中的值是否E
包含 中的值,H1
且前一个空格后一个逗号。这是不区分大小写的,因为该SEARCH
函数不区分大小写。
因此,公式I2
测试中的值是否以某种方式E2
包含中的值。H1
因此,中的公式H2
测试第 2 行(列 E
,F
或G
)中的任何值是否包含 中的值H1
。
E
如果您想生成列、F
和 中的字母数字值的列表 G
(例如,、、、、、、、、 1B
等) ,可以这样做,但我现在不会这样做。2D
2E
5C
24
16B
17A
19C