如果单元格包含值,则为“列标题”

如果单元格包含值,则为“列标题”

寻求帮助

 A       B       C       D       E        F
1               Food    Petrol   Rent   Wages
2       **Food** 12
3       **Petrol**        35
4       **Rent**                  120
5       **Wages**                       300

我有一个公式可以将值复制到单元格 C2:F5 及以后,但我很难想出一个公式,如果列中相应单元格中有值,则将列标题“食品/汽油/租金”复制到 B 列

因此,如果 C2 有值,则 B2=C1 如果 F5 有值,则 B5=“工资”

目前我有 38 列和近 1000 行,手动完成所有操作可能会很复杂

提前致谢

答案1

有很多方法可以做到这一点。您描述了有 38 列,因此某种形式的查找是最简单的方法。您可以使用 INDEX 和 MATCH 来做到这一点:

在此处输入图片描述

B2中的公式:

=INDEX($C$1:$F$1,MATCH(0,ISBLANK(C2:F2),0))

请注意图片中公式周围的括号。这是一个数组公式,因此您需要使用 ++ 而不是 来输入Ctrl。当然,您需要调整范围以匹配您的数据 ShiftEnterEnter

怎么运行的:

MATCH 查找第一个非空条目,在这种情况下 ISBLANK 将返回False,OpenOffice 显示为0(True将显示为1)。MATCH 返回在范围内找到匹配项的列位置。0末尾的参数查找精确匹配。

INDEX 返回 MATCH 找到的相应列位置的第一行的值。

输入公式后,您可以将其复制并粘贴到 B 列。

更新:

您在评论中指出,您的实际电子表格中没有没有数字的空单元格。相反,它们包含显示空白单元格的公式。在这种情况下,ISBLANK 不会将其识别为空白。我们可以通过测试数字值并寻找第一个 True 条件来处理这个问题。因此 B2 公式将是:

=INDEX($C$1:$F$1,MATCH(1,ISNUMBER(C2:F2),0))

Ctrl再次强调,这是一个数组公式,因此您需要使用+ Shift+Enter而不是直接输入Enter。我刚刚验证了当“空”单元格实际上不是空白时,此公式在此示例中有效。

相关内容