2013年10月22日 星期二

AND與OR函數

AND與OR函數通常都是與其他函數搭配使用,因為AND與OR函數屬於判斷類型的函數,所以他們最常跟IF函數黏在一起。

那不免俗地來一下Office.com的官方介紹:

AND 函數的一個常見用法是擴展執行邏輯測試之其他函數的用處,例如 IF 函數執行邏輯測試,然後,如果測試評做為 TRUE,會傳回一個值;如果測試評做為 FALSE,會傳回另一個值。透過使用 AND 函數做為 IF 函數的 logical_test 引數,您可以測試許多不同的條件,而不只是一個。

如果所有引數都評估為 TRUE,會傳回 TRUE;如果有一個或多個引數評估為 FALSE,則傳回 FALSE。


語法
AND(logical1, [logical2], ...)

引數
logical1    是必要的引數,您要測試的第一個條件,可評估為 TRUE 或 FALSE。
logical2, ... 是選擇性引數,您要測試的其他條件,可評估為 TRUE 或 FALSE,最多為 255 個條件。

如果有任何一個引數的邏輯值為 TRUE,即傳回 TRUE;唯有所有引數的邏輯值均為 FALSE 時,才會傳回 FALSE。

其實好像也沒什麼可以介紹了,基本上它就是一個告訴Excel說:我要這個跟這個跟這個跟..….etc的函數,所以現在好像應該來個例子了!

就以這個傢伙為例好了,假如今天男生們點的A餐老闆招待特價9折,我們該如何下條件來計算折扣後的價格呢?

點餐者
性別
餐點
價格
折扣後價格
戴專專
女
A餐
60

鄭科科
男
B餐
50

黃小梅
女
C餐
40

何智智
女
D餐
70

陳小如
女
A餐
60

黃小翔
男
C餐
40

愛雲雲
女
D餐
70

黃小祺
女
B餐
50

吳蘭蘭
女
D餐
70

黃小翔
男
A餐
60


別再跟我說找出男生自己算就好了,拜託別這樣!雖然我題目出的有點爛…

Ans. 我們只要在折扣後價格那一欄填入=IF(AND(B2="男",C2="A餐"),D2*0.9,D2),並向下複製就完成了!


IF(AND(B2="男",C2="A餐"),D2*0.9,D2)的意思是:假如B2(性別)欄位為文字:男,又C2(餐點)欄位為文字:A餐,是的話顯示D2(價格)欄位*0.9,否的話則直接顯示D2(價格)欄位。


如果有任何一個引數的邏輯值為 TRUE,即傳回 TRUE;唯有所有引數的邏輯值均為 FALSE 時,才會傳回 FALSE。

語法
OR(logical1, [logical2], ...)
OR 函數語法具有下列引數:

Logical1, logical2, ...    Logical1 是必要的,後續的邏輯值則是選用的。 這是要測試其為 TRUE 或 FALSE 的第 1 個到第 255 個條件。

這個函數跟AND函數很像,不過它指的東西剛好反過來,它是告訴Excel說:我要這個或這個或這個或..….etc的函數,現在再來個例子吧!

是的,現在又要打折了!假如今天點的A餐及B餐的人,老闆招待特價9折,又該如何下條件來計算折扣後的價格呢?

點餐者
餐點
價格
折扣後價格
戴專專
A餐
60

鄭科科
B餐
50

黃小梅
C餐
40

何智智
D餐
70

陳小如
A餐
60

黃小翔
C餐
40

愛雲雲
D餐
70

黃小祺
B餐
50

吳蘭蘭
D餐
70

黃小翔
A餐
60


廢話就免了。

Ans. 我們只要在折扣後價格那一欄填入=IF(OR(B2="A餐",B2="B餐"),C2*0.9,C2),並向下複製就完成了!

 


IF(OR(B2="A餐",B2="B餐"),C2*0.9,C2)的意思是:假如B2(餐點)欄位為文字:A餐,或B2(餐點)欄位為文字:B餐,是的話顯示C2(價格)欄位*0.9,否的話則直接顯示C2(價格)欄位。


好了,請各位與這兩個可愛的異卵雙胞胎好好相處吧!

沒有留言:

張貼留言

[Excel] 日期(數值)轉文字

Excel的日期格式真的常常使人抓狂, 在使用者輸入日期後該欄位真正的值會被Excel轉換成一串數字, 這串數字代表著自1900/1/1到該日期的總天數。 但程式或使用者真正要的,就不是這串數字, 他們就是要日期!要日期!! So, 為了取得真正的值只好使用TEXT函數來解決了 ...