三种方法实现:显示每行最后一个非空单元格对应的字段名
网友提问:

放大图片

回答网友问题:
我重新做了一张表

【1】Excel工作表函数解决:
如果只有一张表,也不牵扯增加列,我觉得Excel工作表函数快
公式就一句话,但是要说清楚为什么,我们在F2单元格中输入公式 = B2:D2

看到的结果

拖拽下来

当我们把公式改成 = B2:D2<>0 它返回逻辑值,真TRUE还是假FALSE

因为我们要找最后一个非空单元格对应的字段名,我们在Excel基础篇讲过,Vlookup找第一个,Lookup找最后一个
公式 :=LOOKUP(1,0/(B2:D2<>0),$B$1:$D$1)

但是,你添加列和删除列时就麻烦了
【2】ExcelVBA解决:
复制下面的代码到VBE编译器后运行
思路:循环A列,E列向右找到第一个不为空的单元格,拿他的列号,Cells(1,列号)取标题
if判断是防止只有姓名没有内容的行
知识点:



如果你觉得麻烦,没问题,也可以像工作表函数那样自己写一个公式
把下面的函数复制到VBE编辑器中
以后在这个工作簿中,就可以直接使用孙兴华这个函数了

【3】PoewrQuery处理方法
导入数据,添加步骤,公式如下
思路:添加列,x代表每一行的记录,记录转表,筛选Value列的非null,取[Name]变成列表,判断,如果列表中的元素不等于1时,返回列表最后一个元素,否则返回空。


Excel:https://www.bilibili.com/video/BV1Z7411c7U6
ExcelVBA:https://www.bilibili.com/video/BV1rt4y1a72y
PowerQuery:https://www.bilibili.com/video/BV1oa4y1j75e