是否有一种方法可以根据行是否有值来自动填充列的名称的单元格?



我的任务是用列的名称填充excel中的单元格值。例如,这是我想要完成的表格类型。我需要用在列A中具有值(一个"x")的列的名称填充列A的值。

+---+-----------+----------+----------+-----------------+
|   | A         |  B       | C        | D               |
+---+-----------+----------+----------+-----------------+
| 1 |           | name1    | name2    | name3           |
+---+-----------+----------+----------+-----------------+
| 2 |name2;name4|    x     |          |      x          |
----+-----------+----------+----------+-----------------+
| 3 |name3;name4|          |   x      |      x          |
+---+-----------+----------+----------+-----------------+
| 4 |name1;name2|    x     |   x      |                 |
+---+-----------+----------+----------+-----------------+
| 5 |           |    x     |   x      |      x          |
+---+-----------+----------+----------+-----------------+
| 6 |           |          |          |                 | 
+---+-----------+----------+----------+-----------------+

例如,A5的值应该是name1;name2;name3,因为B、C和D列都有值。A6不应该有任何东西

是否有一种方法可以在Excel中自动执行此操作?还是我必须一直手动操作?

谢谢!

使用Office 365及以上版本:

=TEXTJOIN(";",TRUE,FILTER($B$1:$D$1,B2:D2="x",""))

With Excel 2019:

=TEXTJOIN(";",TRUE,IF(B2:D2="x",$B$1:$D$1,""))

并且在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter。

如果有比上面版本更旧的版本,他们可以在vba中使用UDF。下面是一个模仿TEXTJOIN的UDF。使用的公式是上面的第二个。

最新更新