ฟังก์ชันเชิงตรรกะ
บทความนี้จะอธิบายถึงฟังก์ชันเชิงตรรกะและการใช้งานฟังก์ชันเหล่านั้นใน Tableau นอกจากนี้ยังสาธิตวิธีในการสร้างการคำนวณเชิงตรรกะโดยมีตัวอย่างอีกด้วย
การคำนวณเชิงตรรกะช่วยให้คุณสามารถกำหนดได้ว่าเงื่อนเป็นนั้นจริงหรือเท็จ (ตรรกะแบบบูล) ตัวอย่างเช่น คุณอาจต้องการจัดหมวดหมู่ค่าตามจุดตัดบางอย่าง
การคำนวณเชิงตรรกะอาจมีลักษณะดังนี้
IF [Profit] > 0
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END
ไวยากรณ์ | <expr1> AND <expr2> |
คำนิยาม | ดำเนินการเชื่อมตรรกะกับสองนิพจน์ (ถ้าทั้งสองฝ่ายเป็นจริง การทดสอบเชิงตรรกะจะคืนค่าเป็นจริง) |
เอาต์พุต | บูลีน (True หรือ False) |
ตัวอย่าง | IF [Season] = "Spring" AND "[Season] = "Fall" “ถ้าทั้ง (ฤดูกาล = ฤดูใบไม้ผลิ) และ (ฤดูกาล = ฤดูใบไม้ร่วง) เป็นจริงพร้อมๆ กัน ให้กลับมา มันคือวันสิ้นโลกและรองเท้าก็ไม่สำคัญ” |
หมายเหตุ | มักใช้กับ IF และ IIF ดูเพิ่มเติมที่ NOT และ OR หากทั้งสองนิพจน์เป็น หากคุณสร้างการคำนวณโดยแสดงผลลัพธ์ของการเปรียบเทียบ หมายเหตุ: ตัวดำเนินการ |
ไวยากรณ์ | CASE <expression>
|
เอาต์พุต | ขึ้นอยู่กับประเภทข้อมูลของค่า <then> |
คำนิยาม | ประเมินว่า |
ตัวอย่าง |
“ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ” |
หมายเหตุ | ใช้กับ WHEN, THEN, ELSE และ END เคล็ดลับ: หลายครั้งที่คุณสามารถใช้กลุ่มเพื่อให้ได้ผลลัพธ์เหมือนกับฟังก์ชัน CASE ที่ซับซ้อน หรือใช้ CASE เพื่อแทนที่ฟังก์ชันการจัดกลุ่มดั้งเดิม เช่น ในตัวอย่างก่อนหน้านี้ คุณอาจต้องการทดสอบว่าสถานการณ์ใดมีประสิทธิภาพมากกว่าสำหรับสถานการณ์ของคุณ |
ไวยากรณ์ | CASE <expression>
|
คำนิยาม | ส่วนเสริมของ IF หรือนิพจน์ CASE ที่ใช้ในการระบุค่าเริ่มต้นที่จะแสดงหากไม่มีนิพจน์ที่ทดสอบใดเป็นจริง |
ตัวอย่าง | IF [Season] = "Summer" THEN 'Sandals' CASE [Season] |
หมายเหตุ | ใช้กับ CASE, WHEN, IF, ELSEIF, THEN และ END
|
ไวยากรณ์ | [ELSEIF <test2> THEN <then2>] |
คำนิยาม | ส่วนเสริมของนิพจน์ IF ที่ใช้ในการระบุเงื่อนไขเพิ่มเติมนอกเหนือจาก IF เริ่มต้น |
ตัวอย่าง | IF [Season] = "Summer" THEN 'Sandals' |
หมายเหตุ |
ไม่เหมือน |
คำนิยาม | ใช้เพื่อปิดนิพจน์ IF หรือ CASE |
ตัวอย่าง | IF [Season] = "Summer" THEN 'Sandals' “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ” CASE [Season] “ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ” |
หมายเหตุ |
ไวยากรณ์ | IF <test1> THEN <then1> |
เอาต์พุต | ขึ้นอยู่กับประเภทข้อมูลของค่า <then> |
คำนิยาม | ทดสอบชุดของนิพจน์และแสดงค่า |
ตัวอย่าง | IF [Season] = "Summer" THEN 'Sandals' “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ” |
หมายเหตุ |
ไวยากรณ์ | IFNULL(expr1, expr2) |
เอาต์พุต | ขึ้นอยู่กับประเภทข้อมูลของค่า <expr> |
คำนิยาม | แสดง |
ตัวอย่าง | IFNULL([Assigned Room], "TBD") "ถ้าฟิลด์ห้องที่ได้รับมอบหมายไม่เป็น null ให้แสดงค่าของฟิลด์นี้ ถ้าฟิลด์ห้องที่ได้รับมอบหมายเป็น null ให้แสดง TBD แทน” |
หมายเหตุ | เปรียบเทียบกับ ISNULL ดูเพิ่มเติมที่ ZN |
ไวยากรณ์ | IIF(<test>, <then>, <else>, [<unknown>]) |
เอาต์พุต | ขึ้นอยู่กับประเภทข้อมูลของค่าในนิพจน์ |
คำนิยาม | ตรวจสอบว่าตรงตามเงื่อนไข (<test> ) และแสดง <then> หากการทดสอบเป็น True <else> หากการทดสอบเป็น False และมีค่าเผื่อเลือกสำหรับ <unknown> ถ้าการทดสอบเป็นค่า null หากไม่ได้ระบุตัวเลือกที่ไม่รู้จัก IIF แสดงค่า null |
ตัวอย่าง | IIF([Season] = 'Summer', 'Sandals', 'Other footwear') “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้แสดงรองเท้าอื่นๆ” IIF([Season] = 'Summer', 'Sandals', “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต หากทั้งสองกรณีไม่เป็น True ให้แสดงสนีกเกอร์” IIF('Season' = 'Summer', 'Sandals', “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็น True ให้แสดงรองเท้าผ้าใบ” |
หมายเหตุ |
กล่าวคือ ในการคำนวณด้านล่าง ผลลัพธ์จะเป็นสีแดง ไม่ใช่สีส้ม เนื่องจากนิพจน์หยุดได้รับการประเมินทันทีที่ A=A ได้รับการประเมินว่าเป็นจริง:
|
ไวยากรณ์ | <expr1> IN <expr2> |
เอาต์พุต | บูลีน (True หรือ False) |
คำนิยาม | แสดงค่า TRUE หากค่าใน <expr1> ตรงกับค่าใดๆ ใน <expr2> |
ตัวอย่าง | SUM([Cost]) IN (1000, 15, 200) “ค่าของฟิลด์ต้นทุนคือ 1,000, 15 หรือ 200” [Field] IN [Set] “ค่าของฟิลด์อยู่ในเซตหรือไม่” |
หมายเหตุ | ค่าต่างๆ ใน ดูเพิ่มเติมที่ WHEN |
ISDATE
ไวยากรณ์ | ISDATE(string) |
เอาต์พุต | บูลีน (True หรือ False) |
คำนิยาม | แสดงค่า True หาก <string> เป็นวันที่ที่ถูกต้อง นิพจน์อินพุตต้องเป็นฟิลด์สตริง (ข้อความ) |
ตัวอย่าง | ISDATE("2018-09-22") “สตริง 2018-09-22 เป็นวันที่ที่มีรูปแบบถูกต้องหรือไม่” |
หมายเหตุ | สิ่งที่ถือว่าเป็นวันที่ที่ถูกต้องนั้นขึ้นอยู่กับภาษา(ลิงก์จะเปิดในหน้าต่างใหม่)ของระบบประเมินผลการคำนวณ ตัวอย่าง: ในสหรัฐอเมริกา:
ในสหราชอาณาจักร:
|
ไวยากรณ์ | ISNULL(expression) |
เอาต์พุต | บูลีน (True หรือ False) |
คำนิยาม | แสดงค่า True หาก |
ตัวอย่าง | ISNULL([Assigned Room]) “ฟิลด์ห้องที่ได้รับมอบหมายเป็น null หรือไม่" |
หมายเหตุ | เปรียบเทียบกับ IFNULL ดูเพิ่มเติมที่ ZN |
ไวยากรณ์ | MAX(expression) หรือ MAX(expr1, expr2) |
เอาต์พุต | ประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null |
คำนิยาม | แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน
|
ตัวอย่าง | MAX(4,7) = 7 |
หมายเหตุ | สำหรับสตริง โดยปกติ สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง สำหรับวันที่ สำหรับวันที่ เป็นการรวบรวม
เป็นการเปรียบเทียบ
ดูเพิ่มเติมที่ |
ไวยากรณ์ | MIN(expression) หรือ MIN(expr1, expr2) |
เอาต์พุต | ประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null |
คำนิยาม | แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน
|
ตัวอย่าง | MIN(4,7) = 4 |
หมายเหตุ | สำหรับสตริง โดยปกติแล้ว สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง สำหรับวันที่ สำหรับวันที่ เป็นการรวบรวม
เป็นการเปรียบเทียบ
ดูเพิ่มเติมที่ |
ไวยากรณ์ | NOT <expression> |
เอาต์พุต | บูลีน (True หรือ False) |
คำนิยาม | ดำเนินการปฏิเสธตรรกะในนิพจน์ |
ตัวอย่าง | IF NOT [Season] = "Summer" “ถ้าฤดูกาลไม่เท่ากับฤดูร้อน ให้แสดงอย่าสวมรองเท้าแตะ” ถ้าไม่เช่นนั้น ก็แสดงสวมรองเท้าแตะ” |
หมายเหตุ |
ไวยากรณ์ | <expr1> OR <expr2> |
เอาต์พุต | บูลีน (True หรือ False) |
คำนิยาม | ดำเนินการแยกทางตรรกะในสองนิพจน์ |
ตัวอย่าง | IF [Season] = "Spring" OR [Season] = "Fall" "ถ้า (ฤดูกาล = ฤดูใบไม้ผลิ) หรือ (ฤดูกาล = ฤดูใบไม้ร่วง) เป็น True ให้แสดงรองเท้าผ้าใบ" |
หมายเหตุ | มักใช้กับ IF และ IIF ดูเพิ่มเติมที่ และ และ NOT หากนิพจน์ใดนิพจน์หนึ่งเป็น หากคุณสร้างการคำนวณซึ่งแสดงผลลัพธ์ของการเปรียบเทียบ หมายเหตุ: ตัวดำเนินการ |
ไวยากรณ์ | IF <test1> THEN <then1>
|
คำนิยาม | ส่วนที่จำเป็นของ IF , ELSEIF , หรือ CASE นิพจน์ ใช้เพื่อกำหนดผลลัพธ์ที่จะแสดงหากค่าเฉพาะหรือการทดสอบเป็น True |
ตัวอย่าง | IF [Season] = "Summer" THEN 'Sandals' “ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ” CASE [Season] “ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ” |
หมายเหตุ |
ไวยากรณ์ | CASE <expression>
|
คำนิยาม | ส่วนที่จำเป็นของนิพจน์ CASE ค้นหา <value> แรกที่ตรงกับ <expression> และแสดงค่า <then> ที่ตรงกัน |
ตัวอย่าง | CASE [Season] “ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ” |
หมายเหตุ | ใช้กับ CASE, THEN, ELSE และ END
CASE <expression> ค่าที่ |
ไวยากรณ์ | ZN(expression) |
เอาต์พุต | ขึ้นอยู่กับประเภทข้อมูลของ <expression> หรือ 0 |
คำนิยาม | แสดง <expression> หากไม่ใช่ค่า null มิฉะนั้นจะแสดงค่าเป็นศูนย์ |
ตัวอย่าง | ZN([Test Grade]) "หากเกรดการทดสอบไม่เป็นค่า null ให้แสดงค่า หากเกรดการทดสอบเป็น null ให้แสดง 0” |
หมายเหตุ |
ดูเพิ่มเติมที่ ISNULL |
หมายเหตุ: บางส่วนเป็นตัวดำเนินการเชิงตรรกะที่แท้จริงและจะปรากฏเป็นสีดำ ไม่ใช่สีน้ำเงิน หากต้องการข้อมูลเพิ่มเติม โปรดดู ไวยากรณ์ตัวดำเนินการ
ปฏิบัติตามขั้นตอนด้านล่างเพื่อเรียนรู้วิธีสร้างการคำนวณเชิงตรรกะ
- ใน Tableau Desktop ให้เชื่อมต่อกับแหล่งข้อมูลที่บันทึกไว้ ตัวอย่าง - Superstore ที่มาพร้อมกับ Tableau
- ไปยังเวิร์กชีต
- ลากรัฐจากแผงข้อมูลไปยังแถบแถว
- ลากหมวดหมู่จากแผงข้อมูลไปยังแถบแถว และวางไว้ที่ด้านขวาของรัฐ
- ลากยอดขายจากแผงข้อมูลไปยังแผงคอลัมน์
- เลือก “การวิเคราะห์” > สร้างฟิลด์ที่คำนวณ
- ในตัวแก้ไขการคำนวณที่เปิดขึ้น ให้ทำดังนี้
- ตั้งชื่อฟิลด์ที่คำนวณว่า KPI
- ป้อนสูตรต่อไปนี้:
SUM([Profit]) > 0
การคำนวณนี้จะดำเนินการตรวจสอบอย่างรวดเร็วว่าสมาชิกมีค่ามากกว่าศูนย์หรือไม่ หากใช่ การคำนวณจะเป็นจริง หากไม่ใช่ การคำนวณจะเป็นเท็จ
- เมื่อเสร็จแล้ว ให้คลิกตกลง
- ลาก KPI จากแผงข้อมูลไปยังสีบนการ์ด “เครื่องหมาย”
ขณะนี้คุณสามารถดูได้แล้วว่าหมวดหมู่ใดที่กำลังสูญเสียเงินในแต่ละรัฐ
ฟิลด์ที่คำนวณใหม่จะปรากฏภายใต้ “การวัดผล” ในแผงข้อมูล คุณสามารถใช้ฟิลด์นี้ในการแสดงเป็นภาพได้มากกว่าหนึ่งรายการ เช่นเดียวกับฟิลด์อื่นๆ
ดูเพิ่มเติม
แสดงภาพตัวบ่งชี้ความคืบหน้าที่สำคัญ