我的任务是用列的名称填充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。使用的公式是上面的第二个。