在 Excel 中通过另一列定义一列的值

在 Excel 中通过另一列定义一列的值

这看起来应该很简单!我需要通过 A 列定义 B 列,如果 A 列等于数组“taco,burger,spaghetti”中的任何值,则 B 列应显示“food”,如果 A 列等于另一个数组“dress,shoes,belt”中的任何值,则 B 列应显示“clothing” - 但我可以使用什么公式?

谢谢你!

答案1

我不太清楚如何在这个公式中定义一个确定的数组K1:K3,但如果你将它更改为包含“食物”项目的范围,这将起作用

=IF(ISERROR(MATCH(A1,K1:K3,0))=FALSE,"Food","")

如果你需要多次执行此操作,只需""用一系列新的检查替换最后一个,以检查不同列表中的值衣服。 像这样:

=IF(ISERROR(MATCH(A1,K1:K3,0))=FALSE,"Food",IF(ISERROR(MATCH(A1,L1:L3,0))=FALSE,"Clothing",""))

编辑

当然,你可以用花括号定义数组 -

=IF(ISERROR(MATCH(A1,{"taco","burger","spaghetti"},0))=FALSE,"Food",IF(ISERROR(MATCH(A1,{"dress","shoes","belt"},0))=FALSE,"Clothing",""))

答案2

如果您不打算更改“食物”或“衣服”的分组,您可以采用 Raystafarian 的答案。

我建议设立一个桌子在另一张表上定义您的组并使用查找进行翻译。我将跳过此答案的表格,因为它不是必需的。

因此,假设是A1包含“taco”或其他此类值的单元格,并且列ABSheet2您的查找表,其中列A和中包含“taco”、“shoes”等,列中Food包含,然后将以下公式放在您希望出现求值的任何位置:ClothingBA1

=IFERROR(VLOOKUP(A1,Sheet2!A:B,2,FALSE),"")

该函数在引用中VLOOKUP查找,并返回该引用中的列。告诉它找到一个精确匹配,而不是假设列表是有序的并且接近匹配就足够了。A1Sheet2!A:B2FALSE

IFERROR函数只是用来捕获您未放入查找表中的值。如果您希望发生其他事情,请更改""

Sheet2看起来应该是这样的:

   A         B
1  taco      Food
2  burger    Food
3  spaghetti Food
4  shoes     Clothing
5  dress     Clothing
6  belt      Clothing

相关内容