在表格中search一个值并返回行和列号

我需要输出包含特定单词或短语的单元格的行号和列号。

这可能在工作表的任何单元格(任何行,任何列)。

要输出我有的行:

=ROW(INDEX(INDIRECT("'"&$AA$2&"'!"&"A:ZZ"),MATCH("MY WORD",INDIRECT("'"&$AA$2&"'!"&"A:ZZ"),0))) 

并为列我有:

 =COLUMN(INDEX(INDIRECT("'"&$AA$2&"'!"&"A:ZZ"),MATCH("MY WORD",INDIRECT("'"&$AA$2&"'!"&"A:ZZ"),0))) 

现在我知道以上将无法正常工作,因为多列在MATCH不起作用

对于一些澄清:单元格将会是dynamic的(可能存在或不存在),所以我不得不使用INDIRECT单元格AA2包含一个函数的输出,如果它存在返回dynamic表名称。 上面的输出将进入ADDRESS函数,该函数是更大数组公式的帮助列。

我怎么能得到这个输出?

尝试下面的公式。 请注意,这是一个数组公式,你必须用Ctrl + Shift + Enter来确认,而不是只按下Enter键。

 =IFERROR(SMALL(IF(ISNUMBER(SEARCH($D$7,$A$1:$B$6)),1*(ROW($A$1:$B$6)&"."&COLUMN($A$1:$B$6)),""),ROW($A1)),"") 

拖动公式dow

将范围A1:B6调整到您的数据范围,input公式并向下拖动公式。 公式的输出是以RC(Row.Column)格式search的单词的位置,如果没有更多的匹配,则公式的输出将为空。

请注意,如果您希望具有区分大小写的searchfunction,则需要使用FIND()函数,而SEARCH()函数不区分大小写。

如果要将输出转换为地址,请使用RC输出旁边的以下公式:

 =ADDRESS(LEFT(D9,SEARCH(".",D9)-1),MID(D9,SEARCH(".",D9)+1,LEN(D9))) 

如果你不反对使用VBA这个自定义数组函数将返回行和列号:

 Public Function RowNum(TextToSearch As String, SheetRef As Range) As Variant Dim rFind As Range Application.Volatile True With SheetRef.Parent Set rFind = .Cells.Find(What:=TextToSearch, _ After:=.Cells(1, 1), _ LookIn:=xlValues, _ LookAt:=xlPart, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not rFind Is Nothing Then RowNum = Array(rFind.Row, rFind.Column) Else 'Remove if you want function to return 0 on not found. RowNum = CVErr(xlErrNA) End If End With End Function 

在表2的任何位置查找“My Word”的第一个实例: {=RowNum("My Word",Sheet2!A1)}

在当前表单的任何位置查找“My Word”的第一个实例: {=RowNum("My Word",B2)}