欢迎光临散文网 会员登陆 & 注册

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

2023-05-31 13:46 作者:孙兴华zz  | 我要投稿

网友提问:

放大图片

回答网友问题:

我重新做了一张表

【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

三种方法实现:显示每行最后一个非空单元格对应的字段名的评论 (共 条)

分享到微博请遵守国家法律