4083 |
Excel如何將同一員工的三天休假標示出來 |
下圖中自選股工作表,是每位員工於2022年10月的休假日期。
我要在班表主體工作表中,每個人所在欄其請假日期的同列儲存格顯示「休」字,表示休假,該如何寫公式。
首先我們要用IF函數來抓取每個人的休假日期(數值)「IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)」,由於自選股工作表B2:B4與D2:E4這個範圍不能隨著公式向下或向右複製公式而變動,故欄名列號皆加上$鎖定,而班表的C2代表人名,不能隨向下複製公式而變動,故鎖定列號。
然後我們利用TEXTJOIN函數將休假日期合併成一字串「TEXTJOIN(",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4))」。
利用FIND函數找尋B欄儲存格日期數值是否在TEXTJOIN合併的字串中「FIND($B4,TEXTJOIN (",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)),1)」若是則會傳回其開頭字元所在位置。
如果找到符合的日期則傳回的數值必大於0「IF(FIND($B4,TEXTJOIN(",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)),1)>0,"休","")」,則填入休字元,否則不填入資料。
若出現錯誤訊息表示不是休假日期會出現#VALUE!錯誤訊息,為消除此字串,故利用IFERROR函數設定若出現錯誤訊息不填入資料「IFERROR(IF(FIND($B4,TEXTJOIN(",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)),1)>0,"休",""),"")」。
1.點取C4儲存格輸入公式:「=IFERROR(IF(FIND($B4,TEXTJOIN(",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)),1)>0,"休",""),"")」後,按CTRL+SHIFT+ENTER鍵完成輸入,向下及向右複製公式到C4:E34儲存格。
留言列表