阻止某个功能过于“狂野” - 例如,如果我输入 K5,它会显示所有 K5 加上 K51、K52 等

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

公式为:

=IFERROR(INDEX(AllData,SMALL(IF(ISNUMBER(SEARCH($K$3,AnalCode))*ISNUMBER(SEARCH($K$4,ProjectCode)),ROW(AllData)-MIN(ROW(AllData))+1),ROW(H1)),COLUMN(H1)),"")

$K$3 是分析代码,$K$4 是项目代码。

分析代码为{SA、SR、SW等}

项目代码为{E1、E5、E50、E51等}

如果我单独输入 E,我会得到所有“E”,对此感到满意。但是,如果我输入 E5,我会得到 E5、E50 和 E51 等。如果我输入 E5,我真的只想要 E5。有时我可能想要所有 E5*。是否可以在某处使用星号作为通配符?即:如果我输入 E5,我只会得到 E5,但如果我输入 E5*,我会得到所有 E5、E50 和 E51 等。

谢谢

excel excel-formula
1个回答
0
投票

假设您尝试使用或不使用通配符进行行列查找。

如果您有 Microsoft 365(用于使用

LAMBDA
FILTER
等),您可以尝试使用
FILTER
而不是
INDEX
进行类似的操作吗:

  1. 根据选择过滤列 (
    data_matching_analysis_code
    )
  2. 然后过滤与项目代码匹配的行。

COUNTIF
很有帮助,因为您可以在需要时进行通配符匹配(不使用通配符时完全匹配。)

A B C D E
1 SA SR RW SW
2 E1 9 5 7 34
3 E5 4 10 3 33
4 E50 6 1 10 43
5 E51 7 1 9 54
6
7 选择分析代码 S*
8 选择项目代码 E5*
定义名称 指的是
分析数据
=Sheet1!$B$2:$E$5
分析代码
=Sheet1!$B$1:$E$1
项目代码
=Sheet1!$A$2:$A$5
是_匹配
=LAMBDA(lookup_value,lookup_array,MAP(lookup_array,LAMBDA(val,COUNTIF(val,lookup_value))))
数据匹配分析代码
=FILTER(AnalysisData,is_matching(Sheet1!$B$7,AnalysisCode))
=FILTER(data_matching_analysis_code, is_matching($B$8,ProjectCode))
4 10 33
6 1 43
7 1 54
© www.soinside.com 2019 - 2024. All rights reserved.