今天教大家按行提取第一个非空单元格的值,除了传统的第一种方法,第二种的效率提升得不是一星半点。
案例:从下图 1 中提取出每一行的第一个非空单元格中的值,效果如下图 2 所示。


1. 将表格上传至 Power Query。



2. 选中“姓名”列 --> 选择任务栏的“转换”-->“逆透视列”-->“逆透视其他列”


3. 选中“姓名”列 --> 选择任务栏的“主页”-->“分组依据”

4. 保留默认设置 --> 点击“确定”

5. 按以下方式修改公式:
将 RowCount 修改为 AddIndexColumn;


将 ), Int64.Type 修改为 ,"a",1,1,Int64.Type)



6. 展开“计数”列 --> 仅勾选“值”和“a”--> 取消勾选“使用原始列名作为前缀”--> 点击“确定”


7. 从 a 列中仅筛选出 1。


8. 按需修改标题。

9. 将表格上传至所需的位置。


右侧绿色的表格就是所需的结果。

1. 在 J2 单元格中输入以下公式 --> 下拉复制公式:
=@TOCOL(B2:H2,1)

公式释义:
TOCOL(B2:H2,1):将区域内的文本转换成一列,并且去除空格;
在公式前加上 @,就能提取出每个动态数组公式的第一个值;有关 @ 在公式中的用法,请参阅不懂就问,Excel 公式前面加个 @ 有什么作用?;
上述公式也可以改成 =@TOROW(B2:H2,1)。