使用公式根据标题名称在 Excel 中查找列号

使用公式根据标题名称在 Excel 中查找列号

我在 Excel 中有一个表格,其中有以下 2 个标题行布局:

    A      B      C      D      E      F      G      H      I
1 qtr01, qtr02, qtr03, qtr04, qtr01, qtr02, qtr03, qtr04, qtr01
2 2013,  2013,  2013,  2013,  2012,  2012,  2012,  2012,  2015

如何使用公式找到匹配的列号(即列号 6)qtr022012

注意:列和行在一定范围内是动态的。例如,由于插入了新的列记录,包含“qtr”信息的行可能会从第 1 行移到第 3 行,而与 qtr02 和 2012 匹配的标题可能会从 F 列移到 G 列。此动态更改取决于收到的源文件。

答案1

要获取列号,请使用

=MATCH(1, (1:1="qtr02")*(2:2=2012), 0)

这是一个“数组公式”,因此,输入后必须按Ctrl+ Shift+ Enter

  • 1:1指代所有行1。如果愿意,您可以使用A1:I1来仅指代包含数据的单元格。
  • (1:1="qtr02")qtr02在行中(或指定的单元格,视情况而定)查找1 ,并构造结果的布尔数组。在本例中,数组为, {FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE} 因为第二列和第六列包含qtr02
  • 同样,(2:2=2012)创建一个数组,其中2012s 位于第 行2:即{FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE}
  • *当然是乘法。由于这是一个算术运算符,它将操作数转换为数字: FALSE0TRUE1。然后它将两个数组成对相乘。这会导致1在每个操作数数组具有1( TRUE) 的每个位置以及0其他地方(换句话说,两个条件都为真的列)都产生一个。这相当于逻辑函数。Excel 有一个名为的函数,AND()其功能完全相同,但不幸的是,它不适用于数组。使用*是一个笨拙的技巧,可以绕过AND()函数中的这一限制。
  • 然后,当然,找到数组中第一个包含的元素 。MATCH(1, array, 0)1

相关内容