学以致用——Excel自定义函数查询列标(Find Column Number with custom function)

xiaoxiao2021-02-28  40

--------------------------------------------------------------------------------------------------------------

2018年6月14日凌晨更新:

今天在实际手动生成报表时,发现将包含自定义函数的vlookup公式自动填充时,速度变得非常慢(可能只有正常速度的1/20)。这显然不能忍。只好改变了一下使用方法,插入两行作为辅助行,分别用于查询当期列标(单元格包含公式)和存放往期列标(将上期的当期列标复制粘贴为value),然后,自动填充的公式中,仅需包含列标值即可,无需重复计算。问题解决!

---------------------------------------------------------------------------------------------------------------

需求:工作中需要在一个有300多列的主文件中查找15列左右的数据,但是这个主文件的列顺序经常变化。导致每次在使用VLOOKUP查询时,要先确认一下列标是否正确,如果不正确,要先修改列标。这个工作属于重复性工作,每次要花费10分钟左右。可以说我已经忍了很久了。最近两个礼拜VBA知识和经验又增长了一点,今天我趁热打铁,把这个工作也给自动化了吧。

方法:自定义一个Excel函数(findCN)

代码:

Function findCN(ByVal vlRange, ByVal columnName) For Each cel In vlRange If cel.Value = columnName Then findCN = cel.Column Exit For End If Next End Function

其中,columnName为要查询的列名,vlRange为要查询的列名所在的表头区域。

应用示例:

=VLOOKUP(E3,vl_sv,findCN(vl_svHeads,"BUSINESS_CATEGORY")-2,FALSE)

转载请注明原文地址: https://www.6miu.com/read-2619876.html

最新回复(0)