Excel - 创建一个跳过某些值的动态排除列表

时间:2017-07-31 15:08:47

标签: excel dynamic unique

我有一个大数据集,一列的摘录如下所示:

1:T8-9&
1:T25&
1:T27
1:T30&
1:T19
1:T19/y6
1:T10
1:T26-H2O
1:T31
1:T23/24
1:T4x2
1:T12
1:T1&
1:T6&

我想在新表中仅使用唯一值重新创建此列(即,如果我复制了一个值,则将来跳过此值)。为此,我使用下面的公式:

{=IFERROR(INDEX($B$2:$B$15, MATCH(0, COUNTIF($C$1:C2, Sheet4!$B$2:$B$15), 0)), "")}

这样可以正常工作但我也想要排除包含/,x或-H2O的值,而我无法解决如何操作的问题。

我一直试图让这个只用于跳过/值。我试过了:

{=IFERROR(INDEX($B$2:$B$15, MATCH(0, COUNTIFS($C$1:C1, $B$2:$B$15, $B$1:B1, "=*/*"), 0)), "")}

这给了我结果:

  B               C
1:T8-9&         1:T8-9&
1:T25&          1:T25&
1:T27           1:T27
1:T30&          1:T30&
1:T19           1:T19
1:T19/y6        1:T19/y6
1:T10           1:T19/y6
1:T26-H2O       1:T10
1:T31           1:T26-H2O
1:T23/24        1:T31
1:T4x2          1:T31
1:T12           1:T23/24
1:T1&           1:T4x2
1:T6&           1:T12

我的目标是:

   C
1:T8-9&
1:T25&
1:T27
1:T30&
1:T19
1:T10
1:T31
1:T12
1:T1&
1:T6&

非常感谢您提供的任何帮助。

非常感谢, 亨利

1 个答案:

答案 0 :(得分:1)

在C2中输入以下公式,使用CONTROL + SHIFT + ENTER确认,然后复制:

=IFERROR(INDEX($B$2:$B$15, MATCH(0,IF(MMULT(ISNUMBER(SEARCH({"/","x","-H2O"},$B$2:$B$15))+0,{1;1;1})=0,COUNTIF($C$1:C1,$B$2:$B$15)), 0)),"")

请注意,数组常量{1;1;1}中的1的数量与数组常量{"/","x","-H2O"}中的条件数相对应。

希望这有帮助!