Excel 用于检索出现值的多个列号的公式

Excel 用于检索出现值的多个列号的公式,excel,excel-formula,array-formulas,Excel,Excel Formula,Array Formulas,我正在尝试使用一个表上公式,该公式将为我提供存在值的所有列编号。为了举例说明:我想在Sheet1中找到thishheader值为Row1的所有列 如果我搜索的值只出现一次,我可以使用以下公式检索我想要的结果: =匹配(“thishheader”,1:1,0) 我不确定如何实现相同的逻辑,但如果thishheader存在于多个列中,请给我多个列号 对于结果的显示方式,我并不特别在意,但在理想情况下,我会在检索到列号后使用类似于:=SUBSTITUTE(地址(1,col_number,4)、“1”、

我正在尝试使用一个表上公式,该公式将为我提供存在值的所有列编号。为了举例说明:我想在
Sheet1
中找到
thishheader
值为
Row1
的所有列

如果我搜索的值只出现一次,我可以使用以下公式检索我想要的结果:

=匹配(“thishheader”,1:1,0)

我不确定如何实现相同的逻辑,但如果
thishheader
存在于多个列中,请给我多个列号

对于结果的显示方式,我并不特别在意,但在理想情况下,我会在检索到列号后使用类似于:
=SUBSTITUTE(地址(1,col_number,4)、“1”、“1”)
的格式来转换为字母格式。可能用逗号或破折号分隔每个数字/列字母。我可以添加或使用多个公式和列,而不是嵌套公式,如果这是最好的或唯一的路线


提前谢谢

如果您有O365,您可以使用:

=AGGREGATE(15,6,1/($1:$1="ThisHeader")*COLUMN($1:$1),SEQUENCE(COUNTIF($1:$1,"ThisHeader")))
如果您没有
序列
功能,可以将其更换并使用:

=AGGREGATE(15,6,1/($1:$1="ThisHeader")*COLUMN($1:$1),ROW(INDEX($A:$A,1):INDEX($A:$A,COUNTIF($1:$1,"ThisHeader"))))

结果


该公式返回一个列号数组。因此,如果您没有最新Excel版本的动态数组功能,要将其可视化,您可能需要将其作为数组公式输入(在多个单元格上使用
ctrl+shift+enter
。或使用
索引
函数返回每个元素。

Match和其他查找函数仅返回一个结果。请模拟数据样本,并模拟预期结果。所有结果都在一个单元格中?用什么分隔?或产生不同的单元格。)准确地说,没有“可能是这个或那个”。在任何情况下,这都需要某种递归,这种递归不容易用工作表函数实现,但在VBA中非常可行。