某Excel表格有表头,部分数据格为空。
A | B | C | D | E | F | |
1 | stat A | stat B | stat C | stat D | stat E | stat F |
2 | 1 | 1 | ||||
3 | X | X | ||||
4 | X | X | X | X | ||
5 | ||||||
6 | X | X | X | |||
7 | X | X | X | X | ||
8 | X | X |
要求处理每行,把空数据格对应的表头用斜线拼起来。
H | |
1 | Summary |
2 | stat B/stat C/stat E/stat F/ |
3 | stat C/stat D/stat F/ |
4 | stat B/stat E/ |
5 | stat B/stat C/stat D/stat E/stat F/ |
6 | stat C/stat E/stat F/ |
7 | stat B/stat F/ |
8 | stat C/stat D/stat E/ |
使用 SPL XLL,输入公式:
=spl("=?.to(2,).(?(1)(~.pselect@a(!~)).concat($[/]))",A1:F8)
函数 pselect 找到符合条件的成员的位置,默认返回第 1 个成员的位置,@a 表示返回所有成员的位置。to(2,) 表示取序列的第 2 到最后一个成员。