เมื่อคุณต้องการค้นหาข้อมูลที่ตรงตามเงื่อนไขมากกว่าหนึ่งเงื่อนไข เช่น หน่วยที่ขายระหว่างเดือนเมษายนและมกราคม หรือหน่วยที่ขายโดย Nancy คุณสามารถใช้ฟังก์ชัน AND และ OR ร่วมกันได้ มีตัวอย่างดังนี้:
สูตรนี้จะซ้อน ฟังก์ชัน AND ภายใน ฟังก์ชัน OR เพื่อค้นหาหน่วยที่ขายระหว่างวันที่ 1 เมษายน 2011 ถึง 1 มกราคม 2012 หรือหน่วยใดๆ ที่ขายโดย Nancy คุณสามารถดูการส่งคืนสินค้าได้ True สําหรับหน่วยที่ขายโดย Nancy และสําหรับหน่วยที่ขายโดย Tim และ Ed ระหว่างวันที่ที่ระบุในสูตร
ต่อไปนี้คือสูตรในฟอร์มที่คุณสามารถคัดลอกและวางได้ ถ้าคุณต้องการเล่นกับข้อความนั้นในเวิร์กบุ๊กตัวอย่าง ให้ดูที่ส่วนท้ายของบทความนี้
=OR(AND(C2>DATE(2011,4,30),C2<DATE(2012,1,1)),B2="Nancy")
มาเจาะลึกสูตรกัน ฟังก์ชัน OR ต้องการชุดของอาร์กิวเมนต์ (ส่วนของข้อมูล) ที่สามารถทดสอบเพื่อดูว่าเป็นจริงหรือเท็จ ในสูตรนี้ อาร์กิวเมนต์แรกคือฟังก์ชัน AND และฟังก์ชัน DATE ซ้อนอยู่ภายใน อาร์กิวเมนต์ที่สองคือ "Nancy" คุณสามารถอ่านสูตรได้ด้วยวิธีนี้: ทดสอบเพื่อดูว่ายอดขายเกิดขึ้นหลังจากวันที่ 30 เมษายน 2011 และก่อนวันที่ 1 มกราคม 2012 หรือโดย Nancy
ฟังก์ชัน AND ยังส่งกลับค่า True หรือ False อีกด้วย ส่วนใหญ่แล้ว คุณใช้ AND เพื่อขยายความสามารถของฟังก์ชันอื่น เช่น OR และ IF ในตัวอย่างนี้ ฟังก์ชัน OR จะไม่พบวันที่ที่ถูกต้องที่ไม่มีฟังก์ชัน AND
ใช้ AND และ OR กับ IF
คุณยังสามารถใช้ AND และ OR กับ ฟังก์ชัน IF ได้
ในตัวอย่างนี้ ผู้คนจะไม่ได้รับโบนัสจนกว่าพวกเขาจะขายสินค้าอย่างน้อย $125,000 เว้นแต่ว่าพวกเขาจะทํางานในภาคใต้ที่ตลาดมีขนาดเล็กลง ในกรณีดังกล่าวพวกเขามีคุณสมบัติสําหรับโบนัสหลังจาก $ 100,000 ในการขาย
=IF(OR(C4>=125000,AND(B4="South",C4>=100000))=TRUE,C4*0.12,"ไม่มีโบนัส")
ลองมาดูให้ลึกขึ้นอีกหน่อย ฟังก์ชัน IF ต้องการข้อมูล (อาร์กิวเมนต์) สามส่วนเพื่อให้ทํางานได้อย่างถูกต้อง การทดสอบแรกเป็นการทดสอบตรรกะ การทดสอบที่สองเป็นค่าที่คุณต้องการดูว่าการทดสอบส่งกลับเป็น True หรือไม่ และการทดสอบที่สามเป็นค่าที่คุณต้องการดูว่าการทดสอบส่งกลับเป็นเท็จหรือไม่ ในตัวอย่างนี้ ฟังก์ชัน OR และทุกอย่างที่ซ้อนกันในนั้นจะให้การทดสอบเชิงตรรกะ คุณสามารถอ่านค่านั้นเป็น: ค้นหาค่าที่มากกว่าหรือเท่ากับ 125,000 เว้นแต่ว่าค่าในคอลัมน์ C คือ "ภาคใต้" แล้วมองหาค่าที่มากกว่า 100,000 และทุกครั้งที่เงื่อนไขทั้งสองเป็นจริง ให้คูณค่าด้วย 0.12 ซึ่งเป็นค่าคอมมิชชัน มิฉะนั้น ให้แสดงคําว่า "ไม่มีโบนัส"
ข้อมูลตัวอย่าง
ถ้าคุณต้องการทํางานกับตัวอย่างในบทความนี้ ให้คัดลอกตารางต่อไปนี้ลงในเซลล์ A1 ในสเปรดชีตของคุณเอง ตรวจสอบให้แน่ใจว่าเลือกทั้งตาราง รวมทั้งแถวหัวเรื่อง
พนักงานขาย |
ภูมิภาค |
ยอดขาย |
สูตร/ผลลัพธ์ |
---|---|---|---|
Miller |
ภาคตะวันออก |
87925 |
=IF(OR(C2>=125000,AND(B2="South",C2>=100000))=TRUE,C2*0.12,"No bonus") |
Stahl |
ภาคเหนือ |
100000 |
=IF(OR(C3>=125000,AND(B3="South",C3>=100000))=TRUE,C3*0.12,"ไม่มีโบนัส") |
Foster |
ภาคตะวันตก |
145000 |
=IF(OR(C4>=125000,AND(B4="South",C4>=100000))=TRUE,C4*0.12,"ไม่มีโบนัส") |
Wilcox |
ภาคใต้ |
200750 |
=IF(OR(C5>=125000,AND(B5="South",C5>=100000))=TRUE,C5*0.12,"ไม่มีโบนัส") |
Barnhill |
ภาคใต้ |
178650 |
=IF(OR(C6>=125000,AND(B6="South",C6>=100000))=TRUE,C6*0.12,"ไม่มีโบนัส") |
โท มัส |
ภาคเหนือ |
99555 |
=IF(OR(C7>=125000,AND(B7="South",C7>=100000))=TRUE,C7*0.12,"ไม่มีโบนัส") |
เคอเวอร์ |
ภาคตะวันออก |
147000 |
=IF(OR(C8>=125000,AND(B8="South",C8>=100000))=TRUE,C8*0.12,"ไม่มีโบนัส") |
คาสซาซซา |
ภาคเหนือ |
213450 |
=IF(OR(C9>=125000,AND(B9="South",C9>=100000))=TRUE,C9*0.12,"ไม่มีโบนัส") |
บราวน์ลี |
ภาคใต้ |
122680 |
=IF(OR(C10>=125000,AND(B10="South",C10>=100000))=TRUE,C10*0.12,"ไม่มีโบนัส") |
Smithberg |
ภาคตะวันตก |
92500 |
=IF(OR(C11>=125000,AND(B11="South",C11>=100000))=TRUE,C11*0.12,"ไม่มีโบนัส") |
เบนสัน |
ภาคตะวันออก |
88350 |
=IF(OR(C12>=125000,AND(B12="South",C12>=100000))=TRUE,C12*0.12,"ไม่มีโบนัส") |
การอ่าน |
ภาคตะวันตก |
102500 |
=IF(OR(C13>=125000,AND(B13="South",C13>=100000))=TRUE,C13*0.12,"ไม่มีโบนัส") |