網友問到的Excel問題,可以供其他網友參考。
參考上圖,如果使用以下陣列公式來求得上班打卡時間和下班打卡時間。
儲存格B2:{=MIN(IF((日期=$A2)*(姓名=$A$1)*(刷卡時間>=TIME(6,0,0))*
(刷卡時間<TIME(10,30,0)),刷卡時間,""))}
儲存格C2:{=MAX(IF((日期=$A2)*(姓名=$A$1)*(刷卡時間>=TIME(12,0,0))*
(刷卡時間<TIME(23,59,59)),刷卡時間,""))}
其中未取得資料的儲存格會因儲存格原先的格式設定,而出現00:00的結果,要如何將其以空白顯示?
修改如下圖:
【公式設設與解析】
儲存格B2:{=IFERROR(SMALL(IF((日期=$A2)*(姓名=$A$1)*(刷卡時間>=TIME
(6,0,0))*(刷卡時間<TIME(10,30,0)),刷卡時間,""),1),"")}
儲存格BC:{=IFERROR(LARGE(IF((日期=$A2)*(姓名=$A$1)*(刷卡時間>=TIME
(12,0,0))*(刷卡時間<=TIME(23,59,59)),刷卡時間,""),1),"")}
其中主要的調整是將 MIN、MAX 函數改以 SMALL、LARGE 函數取代。
因 MIN 函數和 MAX 函數當查不資料時所傳回的空字串("")會視為 0,而改用 SMALL、LARGE 函數時會因傳回空字串("")而找不到對應資料,會傳回錯誤訊息(#NUM!),再利用 IFERROR 函數將其改以空字串顯示。
文章標籤
全站熱搜
留言列表