close

4083

Excel如何將同一員工的三天休假標示出來

下圖中自選股工作表,是每位員工於2022年10月的休假日期。

image

我要在班表主體工作表中,每個人所在欄其請假日期的同列儲存格顯示「」字,表示休假,該如何寫公式。

image

首先我們要用IF函數來抓取每個人的休假日期(數值)「IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)」,由於自選股工作表B2:B4與D2:E4這個範圍不能隨著公式向下或向右複製公式而變動,故欄名列號皆加上$鎖定,而班表的C2代表人名,不能隨向下複製公式而變動,故鎖定列號。

image

然後我們利用TEXTJOIN函數將休假日期合併成一字串「TEXTJOIN(",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4))」。

image

利用FIND函數找尋B欄儲存格日期數值是否在TEXTJOIN合併的字串中「FIND($B4,TEXTJOIN (",",,IF(自選股!$B$2:$B$4=班表主體!C$2,自選股!$D$2:$F$4)),1)」若是則會傳回其開頭字元所在位置。

image

如果找到符合的日期則傳回的數值必大於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儲存格。

image


arrow
arrow
    文章標籤
    IFERROR FIND IF TEXTJOIN
    全站熱搜
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()