【问题标题】:Excel multi column search, custom text displayExcel多栏搜索,自定义文字显示
【发布时间】:2016-06-18 23:22:02
【问题描述】:

在 excel 中执行多列搜索时是否可以返回给定的自定义值?

我有 2 张床单, 在第一张表中,我有 3 列,每列都有几行带有唯一编号。

在第二张工作表中,我有 2 列,此工作表 2 中的第一列有一个唯一编号,可以在工作表 1 的第 1,2 或 3 列中找到。

如果在工作表 1 的 3 列中的任何一个中找到第 1 列中的值,我想在此工作表 2 的第 2 列中显示自定义文本。

例如如果 sheet2/column1 中的值在 sheet1/Column3 中找到,则文本应为 = "Value Found in Column1",如果在 sheet1/Column2 中找到值,则文本应为 = "Value Found in Column2",如果值在 sheet1/Column1 中找到,则文本应为 = "Value Found in Column1"。

这可能吗,你能举个例子吗?

谢谢。

【问题讨论】:

  • =IF(COUNTIF(Sheet1,A:A,A1),"Found in 1" ,IF(COUNTIF(Sheet1,B:B,A1),"Found in 2", IF(COUNTIF(Sheet1,C:C,A1),"Found in 3","Not Found")))
  • 使用 countif() 是最简单的,但我在 Excel 2013 中返回不正确的值时遇到了问题。

标签: excel excel-formula vba


【解决方案1】:

是的,这可以做到。我可以为您编写函数,但我认为您最好自己编写。这就是我将如何去做。在 sheet2 的 B、C 和 D 列中写入 vlookup(),对应于 sheet1 的 A、B 和 C 列。如果 vlookup() 在这些列中的任何一个中返回匹配项,则该值存在于 sheet1 的三个列之一中。

下一步是使用isna() 来返回vlookup() 是否返回匹配项的布尔值。同样,每个vlookup()(总共三个)都需要其中一个。

最后,您可以在isna() 列上使用and() 来检查三个是否都是#N/A。根据该布尔值,您可以if() 返回您的自定义文本。

显然,我描述的过程将问题分成了许多列。如果你真的想要,这些函数可以组合成一个可怕的嵌套函数并放入一个单元格,但这取决于你。如果您有任何问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2014-06-19
    相关资源
    最近更新 更多