电竞比分网-中国电竞赛事及体育赛事平台

分享

瘋了,一個考勤表居然寫了62個VLOOKUP函數(shù),這就是某音學(xué)到的

 Excel不加班 2021-12-10

粉絲從某音上面刷到一個做考勤表的方法,并用在自己的表格上。于是就出現(xiàn)了標(biāo)題說到的這一幕,寫了62個VLOOKUP函數(shù),簡直瘋了。

每一天的考勤存放在一個表,12月份共31天就31個表,然后根據(jù)姓名查找對應(yīng)的出勤在明細(xì)表20列,加班在明細(xì)表21列。

操作方法就是先篩選出勤,輸入公式下拉。

=VLOOKUP(C4,'1201'!A:U,20,0)


再篩選加班,輸入公式下拉。

=VLOOKUP(C4,'1201'!A:U,21,0)


再將以上步驟重復(fù)31遍。每一列操作一遍。

如果有看盧子前幾天寫的文章,就會想到用VLOOKUP+INDIRECT實現(xiàn)一次搞定。

VLOOKUP查找多個表格,這次全講明白了(內(nèi)含57套PPT年終報告模板)

別嚇自己,INDIRECT函數(shù)跨表引用真的好簡單(內(nèi)含25個函數(shù)視頻)

單元格的日期跟工作表的顯示不一樣,可以用手工都改成1201,也可以借助TEXT轉(zhuǎn)換。

=TEXT(E3,"mmdd")


出勤的31個公式都可以統(tǒng)一成這樣。

=VLOOKUP($C4,INDIRECT(TEXT(E$3,"mmdd")&"!A:U"),20,0)


同理,將VLOOKUP的第三參數(shù)20改成21就得到加班的。

=VLOOKUP($C4,INDIRECT(TEXT(E$3,"mmdd")&"!A:U"),21,0)


能否用一條公式解決呢?

可以,不過要解決2個問題。

01 姓名是合并單元格,如果直接下拉的話,$C4是有內(nèi)容,$C5就沒內(nèi)容,需要解決,讓沒內(nèi)容的等于上一個單元格。

=IF($C4="",$C3,$C4)


02 如果是出勤的就返回第20列,加班就返回21列。

=IF($D4="出勤",20,21)


將這些公式合并,就可以下拉和右拉。

=VLOOKUP(IF($C4="",$C3,$C4),INDIRECT(TEXT(E$3,"mmdd")&"!A:U"),IF($D4="出勤",20,21),0)


這個公式還可以進(jìn)一步完善,讓錯誤值顯示空白,也就是嵌套IFERROR。

=IFERROR(VLOOKUP(IF($C4="",$C3,$C4),INDIRECT(TEXT(E$3,"mmdd")&"!A:U"),IF($D4="出勤",20,21),0),"")


最后,還有一個小細(xì)節(jié),里面的時間是文本格式,因為后期要求和,這里加--轉(zhuǎn)換。

=IFERROR(--VLOOKUP(IF($C4="",$C3,$C4),INDIRECT(TEXT(E$3,"mmdd")&"!A:U"),IF($D4="出勤",20,21),0),"")


如果讓你一次性寫完這么長的公式,你應(yīng)該寫不出。不過,沒關(guān)系,盧子也寫不出,但你要學(xué)會寫公式的方法。先分幾列依次在單元格寫上單個函數(shù),然后組合成完整的公式。


推薦:想要Excel水平超過90%的同事,只需學(xué)會這20個公式就夠了!(內(nèi)含836個表格模板)

上篇:突破限制,實現(xiàn)多個內(nèi)容、多表同時篩選(內(nèi)含電腦入門電子書)

作者:盧子,清華暢銷書作者,《Excel效率手冊 早做完,不加班》系列叢書創(chuàng)始人,個人公眾號:Excel不加班(ID:Excelbujiaban)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多