【问题标题】:Find in which columns lies the text?查找文本在哪些列中?
【发布时间】:2021-12-09 23:00:31
【问题描述】:

感谢您阅读本文!

假设我们在此工作簿中有 2 列名为“数据”:

| Column A | Column B |
| -------- | -------------- |
| Joshua    | Noah          |
| Daniel   | Joshua         |

在另一个工作簿中,我希望用户在单元格中输入一些随机名称。

在该单元格下方,我希望能够向他/她展示该名称所在的列。例如。如果他输入“约书亚”,我想在下面显示:

||
|--|
|Column A|
|Column B|

我更喜欢使用公式,而不是 VBA,因为它会弄乱我不那么有经验的最终用户!

注意:如果您觉得有用,请参阅下面我的尝试:

(1) 我尝试在内部使用嵌套的 IF + FILTER 函数,但 IF 只返回第一个 TRUE 列,如下所示:

| |
|------|
| Column A |
| Column A |

这是我的实际公式,我指的是工作表“6”中的拆分范围,其中我有 4 列:

IF(NOT(ISERROR(FILTER('6'!B4#,ISNUMBER(SEARCH($F$4,'6'!B4#))))),'6'!$B$1,
IF(NOT(ISERROR(FILTER('6'!D4#,ISNUMBER(SEARCH($F$4,'6'!D4#))))),'6'!$D$1,
IF(NOT(ISERROR(FILTER('6'!F4#,ISNUMBER(SEARCH($F$4,'6'!F4#))))),'6'!$F$1,
IF(NOT(ISERROR(FILTER('6'!H4#,ISNUMBER(SEARCH($F$4,'6'!H4#))))),'6'!$H$1,"")))) 

【问题讨论】:

  • 如果您对空白没问题,VLOOKUP 或 HLOOKUP 可能就是您所追求的。看看这两个函数,并考虑为“条目”字段下方字段中的每一列名称使用一个。但是您还必须考虑如果一个列多次具有相同名称(或者这可能)会发生什么MSFT DOCS - VLOOKUP

标签: excel excel-formula office365


【解决方案1】:

你可以使用:

D2中的公式:

=FILTER(TRANSPOSE(A1:B1),MMULT(--(TRANSPOSE(A2:B3)=D1),SEQUENCE(ROWS(A2:B3),,,0)),"")

【讨论】:

  • 我喜欢这种方法,这是我自己从不使用的 2 个功能。但是,当我为 Daniel 和 Noah 尝试您的解决方案时,我得到了错误的列名。
  • @W_O_L_F。正确,好地方。没想太多,但我需要先转置数据。
  • 这很好用!非常感谢!
【解决方案2】:

您可以使用此公式获取列号(工作表“10”上的原始数据)

=AGGREGATE(15,6,1/('10'!A:D="Joshua")*COLUMN('10'!A:D),SEQUENCE(COUNTIF('10'!A:D,"Joshua")))

虽然我建议将范围引用从完整列减少到更短的值以减少计算时间。

使用 Office 365,您可以使用以下方法将列号转换为字母:

=LET(col,AGGREGATE(15,6,1/('10'!A:D="Joshua")*COLUMN('10'!A:D),SEQUENCE(COUNTIF('10'!A:D,"Joshua"))),
          adr,ADDRESS(1,col,2),
         "Column " & LEFT(adr,FIND("$",adr)-1))

【讨论】:

  • 谢谢!你的最后一个公式几乎 100% 符合我的问题。我只是更改了公式以显示列标题名称而不是列字母。所以从这个: "Column " & LEFT(adr,FIND("$",adr)-1)) 到这个 IF(LEFT(adr,FIND("$",adr)-1)="H","Column H 名称",IF(LEFT(adr,FIND("$",adr)-1)="J","列 J 名称","")))
  • 很高兴为您提供帮助。由于我的回答似乎满足了您的问题,如果您能将其标记为已接受,我将不胜感激。您可以阅读What should I do when someone answers my question 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
  • 2014-07-17
相关资源
最近更新 更多