如何在 Excel 过滤器中创建新的选项框并对 Excel 中的多列应用单个过滤器?

如何在 Excel 过滤器中创建新的选项框并对 Excel 中的多列应用单个过滤器?

我有一张 Excel 工作表。在 A 列中,有一个对象列表(大约 50 个);在其他列中列出了这些对象的特征。E、F、G 列对我来说特别重要。它们包含数值,例如17等,数字字母值,例如16B、,17C还有逗号分隔的值,这些值至少包含几个数字和/或数字字母值,例如24, 13B, 15G17A, 20B, 16。这些列中还有一些空单元格。以下是工作表

我想在 E、F、G 列上使用过滤器。

这就是我希望过滤器

这就是他们目前的做法

例如,我想按数字字母值(如“17C”)过滤 F 列。理想情况下,剩余的单元格将是包含“17C”的单元格,例如,,,17C等。17C, 24A16B, 17B, 17C, 24A, 24F

另外,我想用数值(例如“6”)过滤 F 列。理想情况下,剩下的单元格将是包含“6”的单元格,例如1, 2, 3, 6, 12, 13, 15, 206,但不6E, 7C, 13C6A、 或16B, 17A, 19C

我希望能够过滤列中使用的所有可能值,11B,,,,,,... ,,,,等等。22D2E2024A24F

我想对 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;即 Column  E

  • 将单元格拖拽/填充I2到右侧单元格K2。现在 中的公式J2正在测试 列 F 并且 K2正在测试 列 G

    辅助列可以放在任意位置。您可以将上述公式放在 列 中 XY并且 Z如果您愿意 — 或AEAF和 中AG

  • 在单元格 中H2输入=OR(I2:K2)。显然,如果您重新定位了I--辅助列,JK调整它以匹配。
  • 选择辅助列单元格(H2通过K2,或放置它们的任何位置)并向下拖动/填充以覆盖所有包含数据的行。
  • 篩選列H

现在,

  • 在单元格中输入字母数字值, 如 1B或 。17A24H1
  • 激活列上的过滤器H以仅显示真的值。现在您将仅看到列 F或 包含您在 中输入的值的 G行。HH1

未过滤:

已筛选:

好的;辅助列中的公式(上面描述为IJ和 K)如下所示

=或(表达式1表达式2表达式3表达式4
其中四个表达式为:

  • AND(E2=$H$1,E2<>"")。这将测试 Column 中的值是否 E 等于 中的值H1(但不为空)。例如,如果 中的值为 ,则这将为E3TRUE 。H224
  • LEFT(E2, LEN($H$1)+1)=($H$1&",")。这将测试 Column 中的值是否 E以 中的值开头 H1。更准确地说, Column 中的值是否 E 以 中的值开头, H1后跟逗号。因此,例如,对于 ,F3这将为 TRUE ,但对于或 ,16B 这将为 FALSE 。116
  • RIGHT(E2, LEN($H$1)+1)=(" "&$H$1)。与上述相同;这将测试 Column 中的值是否 E以 中的值结尾 H1。更准确地说,测试 Column 中的值是否 E以 中的值结尾 H1 ,且前面有一个空格。因此,例如,对于 ,F3这将为 TRUE  ,但对于或 , 19C 这将为 FALSE 。9CC

    注意,上面三个测试都是不区分大小写的,因为 Excel中不区分大小写。string1=string2

  • NOT(ISERROR(SEARCH(" "&$H$1&",", E2)))。这将测试 Column 中的值是否 E包含 中的值 H1。更准确地说, Column 中的值是否 E包含 中的值, H1 且前一个空格后一个逗号。这是不区分大小写的,因为该SEARCH函数不区分大小写。

因此,公式I2测试中的值是否以某种方式E2包含中的值。H1

因此,中的公式H2测试第 2 行(列 EFG)中的任何值是否包含 中的值H1


E如果您想生成列、F和 中的字母数字值的列表 G (例如,、、、、、、、、 1B等) ,可以这样做,但我现在不会这样做。2D2E5C2416B17A19C

相关内容