excel日常工作中,幾乎每個人都會碰到需要使用條件格式功能的問題,今天作者就遇上了人事考勤方面的一個問題。
通過系統導出了工作人員的考勤打卡記錄,現在需要給上班打卡時間設置3個條件,當符合條件時,自動填充相應的字體顔色。
如下圖所示:
我們仔細看一下它的3個條件:
條件1:字體變黃色
超過8:45小于09:00
條件2:字體橘色
超過09:00小于09:15
條件3:字體變紅色
超過09:15小于12:00
這類大小于的條件設置屬于基礎運算,使用符号">"`"<"及"=",就可以進行條件判斷。
而在條件格式中,對于處于兩個數值之間,也就是介于兩者之間的條件判斷,我們可以直接選擇功能中的”介于“設置:
當然,我們也可以使用公式來設置條件格式:
在這裡作者使用公式來進行設置,因為條件格式的精華和難點都在公式設置條件格式上。
現在我們按照習慣性思維輸入一個公式:="08:46"<$A$3<"09:00"
那麼這個公式對了嗎?!
答案是不對!
那麼錯在哪裡?
有3點:
一是條件格式公式設置輸入單元格時要使用相對引用,因為引用單元格時系統默認為絕對引用,而絕對引用,會使得條件格式無法向下運行公式,而無法應用到整個區域,因此要記住手動調整單元格引用方式。
二是公式表達式錯誤,大于一個數字我們可以直接用">"号,但如果還有一個條件是小于一個數,卻不能直接用"<"它。比如3>2,這個表達式的結果是邏輯值"true",如果2<3<4,也就是"true<4",那明顯是錯誤的。
三是公式與數據時間值不對應。啥意思?在數據表中,時間值是文本的格式,很多情況下,軟件或者erp系統導出的數字通常是文本格式,如何快速辨認一個數字是不是文本格式,可以參考作者的這篇文章《Excel小技巧:一眼識别表格中的數字是不是文本格式》。而在公式中,“08:46”它不是你想當然的時間值,而是一個文本值,文本值能夠執行計算嗎?當然不能,除非你把文本值轉換為數值。
因此即便是通過上面直接使用“介于”的功能操作,執行的結果仍然是無效的,錯誤的,因為數據表中的值是文本值,無法進行基礎運算。
所以,大家注意一個關鍵詞“把文本值轉換為數值”。
在excel中,有幾個函數是可以将文本值直接轉換為數值的,比如求時間值的timevalue函數,公式如下圖所示:
timevalue函數可以将一個文本的時間轉換為數值,結果以一個包含衆多小數位的數字表示。
那麼當數據表中的文本值都可以轉換為數值,便可以通過公式進行大小的比較。
接下來我們輸入一個條件判斷公式:=AND(TIMEVALUE(A3)>TIMEVALUE("08:45"),TIMEVALUE(A3)<TIMEVALUE("09:00"))
這個公式包含了and函數和timevalue函數,兩個函數的具體含義和用法,大家可以關注作者的專欄《excel100個常見函數快速入門》。
and函數是多條件判斷中的“且”的關系判斷,也就是兩個條件都要符合,如果都符合它的結果會返回一個邏輯值true,如果任意一個條件不符合,則返回為假的結果,false!
而條件格式為什麼叫”條件“格式,是因為它就是通過判斷一組條件是否成立,并設置指定的單元格格式,當條件符合時,系統便自動調整單元格格式為設置的指定格式,比如單元格顔色填充,字體大小顔色等。
所以,條件格式的關鍵點又在于必須是對一個或一組條件的判斷,如果要寫公式,那麼這個公式的結果必須是返回一個邏輯值,也就是真和假——true和false。
接下來,我們複制剛才在單元格輸入的公式,然後進入條件格式的公式設置界面,直接粘貼複制的公式,并在格式設置中進行相應的字體顔色選擇。
具體操作如下面動圖所示:
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!