转自EXCEL不加班 在Excel中查询问题是比较常见的,针对这种问题首选VLOOKUP函数。 如果你对VLOOKUP函数还不了解,先看一个通俗的函数图解。 铺垫完进入疑难: Excel中如何随着时间变化每月的任务指标随着变化? 数据源究竟如何,需要使用这么长的一条公式? 打开表格,可以看到这里的查询是动态的,每月变动一次。201701代表2017年1月份,而现在是2月份。1月份就返回第2列,2月份就返回第3列,依次类推。 理解了题意以后,这道题变得简单多了。 获取今天的日期可以用: =TODAY()=NOW() 两个函数都可以用,以其中一条来说明,转变成月份可以用: =MONTH(NOW()) 现在是2月份,也就是返回2。而2月份要返回第3列,也就是月份+1。 =MONTH(NOW())+1 综合VLOOKUP函数就获取最终答案。 =VLOOKUP(A13,$A$1:$J$4,MONTH(NOW())+1,0) 本来到这里问题就结束了,但是卢子想得比较长远。日期可能会跨年,这样就不能用这种。 跨年的情况下,用获取年月在第1行的排位,也就是返回第几列。 先说获取年月,这个采用TEXT函数即可。 =TEXT(NOW(),"emm") e代表4位数的年份,也可以用yyyy,mm代表2位数的月份。 TEXT获取的年月是文本格式,而数据源的年月是数值,所以需要将文本格式转换成数值。文本格式转数值只要让其参与运算即可转变,最常用的就是在前面添加--。 =--TEXT(NOW(),"emm") 排位就用MATCH函数,如卢子在几兄弟中排行老四,也就是第4个,返回4。 =MATCH("卢子",{"老大";"老二";"老三";"卢子"},0) 将年份跟区域代替进去,就知道年月所在位置。 =MATCH(--TEXT(NOW(),"emm"),$1:$1,0) 最终的公式为: =VLOOKUP(A13,$A$1:$J$4,MATCH(--TEXT(NOW(),"emm"),$1:$1,0),0) 问题搞定收工。。。。。。 |
|