我对包含更多条件的 if 函数和 match 函数有疑问。有解决方案吗?
目前我尝试使用这个数组公式但无法得到任何结果。
{=IF(MATCH(A1;'6(AKK)'!$A$1:$A$100);"AKK";
IF(MATCH(A1;'6(K3)'!$A$1:$A$100);"K3";
IF(MATCH(A1;'6(Kesling)'!$A$1:$A$100);"健康教育";
IF(MATCH(A1;'6(Kespro)'!$A$1:$A$100);"健康再生";
IF(MATCH(A1;'6(Promkes)'!$A$1:$A$100);"健康促销";
IF(MATCH(A1;'6(Epid)'!$A$1:$A$100);"流行病学";
IF(MATCH(A1;'6(Gizi)'!$A$1:$A$100);"Gizi 健康福利院";"Gagal")))))))}
例如,主表中的数据如下所示。
A B
R.15.01.001(这是细胞配方)
R.15.01.002
R.15.01.003
例如,工作表“6(AKK)”中的数据
A
1 R.15.01.001
2 R.15.01.003
3 R.15.01.007
4 等等...
例如,工作表“6(K3)”中的数据
A
1 R.15.01.002
2 R.15.01.004
3 R.15.01.005
4 等等...
每张工作表看起来都一样,但每张工作表上的数字都不相同 6. 我需要它来完成某些任务。我希望在这里能有一个解决方案。
答案1
有两种方法可以实现这一点。
选项 1(笨重且不太复杂,但可能更容易遵循)
因为当函数无法找到与特定工作表匹配的内容时MATCH
会返回(或出现错误),所以一种解决方案是将语句包装到嵌套语句中。#N/A
ISNA
IF
我在这里为您提供了前 3 张表的示例:
=IF(ISNA(MATCH(A2,'6(AKK)'!$A$1:$A$100,0)),IF(ISNA(MATCH(A2,'6(K3)'!$A$1:$A$100,0)),IF(ISNA(MATCH(A1,'6(KESLING)'!$A$1:$A$100)),"[See Note]","Kesehatan Lingkungan"),"K3"),"AKK")
笔记- 继续IF(ISNA(MATCH ...
在此处嵌入语句。在最后一个语句中,将“Gagal”放在此处。
正如你所见,它会变得又长又丑。但它能工作。
最后,输入这个常规的公式,而不是数组公式。
选项 2(更复杂、更高效,需要更多的初始输入)
- 定义命名范围使用公式将结果显示为 sList
=MID(TRANSPOSE(GET.WORKBOOK(1))&T(NOW()),FIND("]",TRANSPOSE(GET.WORKBOOK(1))&T(NOW()))+1,255)
(有关获取工作簿) - 设置具有相应返回值的工作表名称的参考表,并使用 return_values 名称定义此范围
- 将此公式(作为数组)输入到单元格 B1 中
=VLOOKUP(INDEX(sList,MATCH(TRUE,COUNTIF(INDIRECT("'"&sList&"'!$A$1:$A$100"),A1)>0)),return_value,2,0)
,然后向下拖动 A 列中每个值的行