ฟังก์ชันเชิงตรรกะ

บทความนี้จะอธิบายถึงฟังก์ชันเชิงตรรกะและการใช้งานฟังก์ชันเหล่านั้นใน Tableau นอกจากนี้ยังสาธิตวิธีในการสร้างการคำนวณเชิงตรรกะโดยมีตัวอย่างอีกด้วย

เหตุใดจึงต้องใช้การคำนวณเชิงตรรกะ

การคำนวณเชิงตรรกะช่วยให้คุณสามารถกำหนดได้ว่าเงื่อนเป็นนั้นจริงหรือเท็จ (ตรรกะแบบบูล) ตัวอย่างเช่น คุณอาจต้องการจัดหมวดหมู่ค่าตามจุดตัดบางอย่าง

การคำนวณเชิงตรรกะอาจมีลักษณะดังนี้

IF [Profit] > 0 
THEN 'Profitable'
ELSEIF [Profit] = 0 THEN 'Break even'
ELSE 'Loss'
END

ฟังก์ชันเชิงตรรกะและตัวดำเนินการที่พร้อมให้บริการใน Tableau

และ

ไวยากรณ์<expr1> AND <expr2>
คำนิยามดำเนินการเชื่อมตรรกะกับสองนิพจน์ (ถ้าทั้งสองฝ่ายเป็นจริง การทดสอบเชิงตรรกะจะคืนค่าเป็นจริง)
เอาต์พุตบูลีน (True หรือ False)
ตัวอย่าง
IF [Season] = "Spring" AND "[Season] = "Fall" 
THEN "It's the apocalypse and footwear doesn't matter"
END

“ถ้าทั้ง (ฤดูกาล = ฤดูใบไม้ผลิ) และ (ฤดูกาล = ฤดูใบไม้ร่วง) เป็นจริงพร้อมๆ กัน ให้กลับมา มันคือวันสิ้นโลกและรองเท้าก็ไม่สำคัญ”

หมายเหตุ

มักใช้กับ IF และ IIF ดูเพิ่มเติมที่ NOT และ OR

หากทั้งสองนิพจน์เป็น TRUE (นั่นคือ ไม่ใช่ FALSE or NULL) ผลลัพธ์จะเป็น TRUE หากนิพจน์ใดนิพจน์หนึ่งเป็น NULL ผลลัพธ์จะเป็น NULL ในกรณีอื่นๆ ทุกกรณี ผลลัพธ์จะเป็น FALSE

หากคุณสร้างการคำนวณโดยแสดงผลลัพธ์ของการเปรียบเทียบ AND บนเวิร์กชีต Tableau จะแสดง TRUE และ FALSE หากคุณต้องการเปลี่ยนรายการนี้ โปรดใช้พื้นที่ “จัดรูปแบบ” ในกล่องโต้ตอบการจัดรูปแบบ

หมายเหตุ: ตัวดำเนินการ AND จะใช้การประเมินแบบย่อ ซึ่งหมายความว่าหากนิพจน์แรกได้รับการประเมินเป็น FALSE นิพจน์ที่สองก็จะไม่ได้รับการประเมินเลย สิ่งนี้อาจเป็นประโยชน์หากนิพจน์ที่สองส่งผลให้เกิดข้อผิดพลาดเมื่อนิพจน์แรกเป็น FALSE เนื่องจากนิพจน์ที่สองในกรณีนี้ไม่ได้รับการประเมินเลย

CASE

ไวยากรณ์CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
เอาต์พุตขึ้นอยู่กับประเภทข้อมูลของค่า <then>
คำนิยาม

ประเมินว่า expression และเปรียบเทียบกับตัวเลือกที่ระบุ (<value1>, <value2> เป็นต้น) เมื่อพบ value ที่ตรงกับนิพจน์ CASE จะแสดง return ที่สอดคล้องกัน หากไม่พบค่าที่ตรงกัน ระบบจะแสดงผลค่าเริ่มต้น (ไม่บังคับ) หากไม่มีค่าเริ่มต้นและไม่มีค่าที่ตรงกัน ระบบจะแสดงผลค่า null

ตัวอย่าง
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ”

หมายเหตุ

ดูเพิ่มเติมที่ IF และ IIF

ใช้กับ WHEN, THEN, ELSE และ END

เคล็ดลับ: หลายครั้งที่คุณสามารถใช้กลุ่มเพื่อให้ได้ผลลัพธ์เหมือนกับฟังก์ชัน CASE ที่ซับซ้อน หรือใช้ CASE เพื่อแทนที่ฟังก์ชันการจัดกลุ่มดั้งเดิม เช่น ในตัวอย่างก่อนหน้านี้ คุณอาจต้องการทดสอบว่าสถานการณ์ใดมีประสิทธิภาพมากกว่าสำหรับสถานการณ์ของคุณ

ELSE

ไวยากรณ์CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
คำนิยามส่วนเสริมของ IF หรือนิพจน์ CASE ที่ใช้ในการระบุค่าเริ่มต้นที่จะแสดงหากไม่มีนิพจน์ที่ทดสอบใดเป็นจริง
ตัวอย่าง
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END
หมายเหตุ

ใช้กับ CASE, WHEN, IF, ELSEIF, THEN และ END

ELSE เป็นทางเลือกด้วย CASE และ IF ในการคำนวณซึ่ง ELSE ไม่ได้ระบุ หากไม่มี <test> เป็นจริง การคำนวณโดยรวมจะแสดงค่าเป็น null

ELSE ไม่ต้องมีเงื่อนไข (เช่น [Season] = "Winter") และถือเป็นรูปแบบหนึ่งของการจัดการแบบ null

ELSEIF

ไวยากรณ์[ELSEIF <test2> THEN <then2>]
คำนิยามส่วนเสริมของนิพจน์ IF ที่ใช้ในการระบุเงื่อนไขเพิ่มเติมนอกเหนือจาก IF เริ่มต้น
ตัวอย่าง
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSEIF [Season] = "Spring" THEN 'Sneakers'
ELSEIF [Season] = "Autumn" THEN 'Sneakers'
ELSE 'Bare feet'
END
หมายเหตุ

ใช้กับ IF, THEN, ELSE และ END

ELSEIF สามารถถือเป็นส่วนคำสั่ง IF เพิ่มเติมได้ ELSEIF เป็นทางเลือกและสามารถทำซ้ำได้หลายครั้ง

ไม่เหมือน ELSE, ELSEIF ต้องมีเงื่อนไข (เช่น [Season] = "Winter")

END

คำนิยามใช้เพื่อปิดนิพจน์ IF หรือ CASE
ตัวอย่าง
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ”

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ”

หมายเหตุ

ใช้กับ CASE, WHEN, IF, ELSEIF, THEN และ ELSE

IF

ไวยากรณ์IF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
เอาต์พุตขึ้นอยู่กับประเภทข้อมูลของค่า <then>
คำนิยาม

ทดสอบชุดของนิพจน์และแสดงค่า <then> สำหรับ <test> แรกที่เป็นค่า True

ตัวอย่าง
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ”

หมายเหตุ

ดูเพิ่มเติมที่ IF และ IIF

ใช้กับ ELSEIF, THEN, ELSE และ END

IFNULL

ไวยากรณ์IFNULL(expr1, expr2)
เอาต์พุตขึ้นอยู่กับประเภทข้อมูลของค่า <expr>
คำนิยาม

แสดง <expr1> หากไม่เป็นค่า null มิฉะนั้นจะแสดง <expr2>

ตัวอย่าง
IFNULL([Assigned Room], "TBD")

"ถ้าฟิลด์ห้องที่ได้รับมอบหมายไม่เป็น null ให้แสดงค่าของฟิลด์นี้ ถ้าฟิลด์ห้องที่ได้รับมอบหมายเป็น null ให้แสดง TBD แทน”

หมายเหตุ

เปรียบเทียบกับ ISNULL IFNULL แสดงค่าทุกครั้ง ISNULL แสดงบูลีน (True หรือ False)

ดูเพิ่มเติมที่ ZN

IIF

ไวยากรณ์IIF(<test>, <then>, <else>, [<unknown>])
เอาต์พุตขึ้นอยู่กับประเภทข้อมูลของค่าในนิพจน์
คำนิยามตรวจสอบว่าตรงตามเงื่อนไข (<test>) และแสดง <then> หากการทดสอบเป็น True <else> หากการทดสอบเป็น False และมีค่าเผื่อเลือกสำหรับ <unknown> ถ้าการทดสอบเป็นค่า null หากไม่ได้ระบุตัวเลือกที่ไม่รู้จัก IIF แสดงค่า null
ตัวอย่าง
IIF([Season] = 'Summer', 'Sandals', 'Other footwear')

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้แสดงรองเท้าอื่นๆ”

IIF([Season] = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots', 'Other footwear')
)

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต หากทั้งสองกรณีไม่เป็น True ให้แสดงสนีกเกอร์”

IIF('Season' = 'Summer', 'Sandals', 
IIF('Season' = 'Winter', 'Boots',
IIF('Season' = 'Spring', 'Sneakers', 'Other footwear')
)
)

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็น True ให้แสดงรองเท้าผ้าใบ”

หมายเหตุ

ดูเพิ่มเติมที่ IF และCASE

IIF ไม่มีค่าเท่ากับ ELSEIF (เช่น IF) หรือคำสั่ง WHEN ที่ซ้ำ (เช่น CASE) แต่สามารถประเมินการทดสอบหลายรายการตามลำดับโดยการซ้อนคำสั่ง IIF เป็นองค์ประกอบ <unknown> ค่า True แรก (นอกสุด) จะแสดง

กล่าวคือ ในการคำนวณด้านล่าง ผลลัพธ์จะเป็นสีแดง ไม่ใช่สีส้ม เนื่องจากนิพจน์หยุดได้รับการประเมินทันทีที่ A=A ได้รับการประเมินว่าเป็นจริง:

IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange', IIF('C' = 'D', 'Yellow', 'Green')))

IN

ไวยากรณ์<expr1> IN <expr2>
เอาต์พุตบูลีน (True หรือ False)
คำนิยามแสดงค่า TRUE หากค่าใน <expr1> ตรงกับค่าใดๆ ใน <expr2>
ตัวอย่าง
SUM([Cost]) IN (1000, 15, 200)

“ค่าของฟิลด์ต้นทุนคือ 1,000, 15 หรือ 200”

[Field] IN [Set]

“ค่าของฟิลด์อยู่ในเซตหรือไม่”

หมายเหตุ

ค่าต่างๆ ใน <expr2> สามารถเป็น “เซต” รายการค่าตามตัวอักษร หรือฟิลด์รวมก็ได้

ดูเพิ่มเติมที่ WHEN

ISDATE

ไวยากรณ์ISDATE(string)
เอาต์พุตบูลีน (True หรือ False)
คำนิยามแสดงค่า True หาก <string> เป็นวันที่ที่ถูกต้อง นิพจน์อินพุตต้องเป็นฟิลด์สตริง (ข้อความ)
ตัวอย่าง
ISDATE("2018-09-22")

“สตริง 2018-09-22 เป็นวันที่ที่มีรูปแบบถูกต้องหรือไม่”

หมายเหตุ

สิ่งที่ถือว่าเป็นวันที่ที่ถูกต้องนั้นขึ้นอยู่กับภาษา(ลิงก์จะเปิดในหน้าต่างใหม่)ของระบบประเมินผลการคำนวณ ตัวอย่าง:

ในสหรัฐอเมริกา:

  • ISDATE("2018-09-22") = TRUE
  • ISDATE("2018-22-09") = FALSE

ในสหราชอาณาจักร:

  • ISDATE("2018-09-22") = FALSE
  • ISDATE("2018-22-09") = TRUE

ISNULL

ไวยากรณ์ISNULL(expression)
เอาต์พุตบูลีน (True หรือ False)
คำนิยาม

แสดงค่า True หาก <expression> เป็น NULL (ไม่มีข้อมูลที่ถูกต้อง)

ตัวอย่าง
ISNULL([Assigned Room])

“ฟิลด์ห้องที่ได้รับมอบหมายเป็น null หรือไม่"

หมายเหตุ

เปรียบเทียบกับ IFNULL IFNULL แสดงค่าทุกครั้ง ISNULL แสดงค่า+บูลีน

ดูเพิ่มเติมที่ ZN

MAX

ไวยากรณ์MAX(expression) หรือ MAX(expr1, expr2)
เอาต์พุตประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL  หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null
คำนิยาม

แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน

MAX ยังสามารถนำไปใช้กับฟิลด์เดียวเป็นการรวบรวมได้

ตัวอย่าง
MAX(4,7) = 7
MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021#
MAX([Name]) = "Zander"
หมายเหตุ

สำหรับสตริง

โดยปกติ MAX จะเป็นค่าที่อยู่หลังสุดตามลำดับตัวอักษร

สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง MAX จะเป็นค่าที่สูงที่สุดในลำดับการจัดเรียงที่กำหนดตามฐานข้อมูลของคอลัมน์นั้น

สำหรับวันที่

สำหรับวันที่ MAX เป็นวันที่ล่าสุด หาก MAX เป็นการรวบรวม ผลลัพธ์จะไม่มีลำดับชั้นวันที่ หาก MAX คือการเปรียบเทียบ ผลลัพธ์จะคงลำดับชั้นวันที่ไว้

เป็นการรวบรวม

MAX(expression) เป็นฟังก์ชันรวมและแสดงผลลัพธ์รวมเพียงรายการเดียว สิ่งนี้จะแสดงเป็น AGG(expression) ในการแสดงเป็นภาพ

เป็นการเปรียบเทียบ

MAX(expr1, expr2) เปรียบเทียบค่าทั้งสองและแสดงค่าระดับแถว

ดูเพิ่มเติมที่ MIN

MIN

ไวยากรณ์MIN(expression) หรือ MIN(expr1, expr2)
เอาต์พุตประเภทข้อมูลเดียวกันกับอาร์กิวเมนต์หรือ NULL  หากส่วนใดส่วนหนึ่งของอาร์กิวเมนต์เป็นค่า null
คำนิยาม

แสดงค่าสูงสุดของสองอาร์กิวเมนต์ ซึ่งต้องเป็นประเภทข้อมูลเดียวกัน

MIN ยังสามารถนำไปใช้กับฟิลด์เดียวเป็นการรวบรวมได้

ตัวอย่าง
MIN(4,7) = 4
MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#
MIN([Name]) = "Abebi"
หมายเหตุ

สำหรับสตริง

โดยปกติแล้ว MIN จะเป็นค่าที่มาก่อนตามลำดับตัวอักษร

สำหรับแหล่งข้อมูลของฐานข้อมูล ค่าสตริง MIN จะเป็นค่าที่ต่ำสุดในลำดับการจัดเรียงที่กำหนดตามฐานข้อมูลของคอลัมน์นั้น

สำหรับวันที่

สำหรับวันที่ MIN เป็นวันแรกที่สุด หาก MIN เป็นการรวบรวม ผลลัพธ์จะไม่มีลำดับชั้นวันที่ หาก MIN คือการเปรียบเทียบ ผลลัพธ์จะคงลำดับชั้นวันที่ไว้

เป็นการรวบรวม

MIN(expression) เป็นฟังก์ชันรวมและแสดงผลลัพธ์รวมเพียงรายการเดียว สิ่งนี้จะแสดงเป็น AGG(expression) ในการแสดงเป็นภาพ

เป็นการเปรียบเทียบ

MIN(expr1, expr2) เปรียบเทียบค่าทั้งสองและแสดงค่าระดับแถว

ดูเพิ่มเติมที่ MAX

NOT

ไวยากรณ์NOT <expression>
เอาต์พุตบูลีน (True หรือ False)
คำนิยามดำเนินการปฏิเสธตรรกะในนิพจน์
ตัวอย่าง
IF NOT [Season] = "Summer" 
THEN 'Don't wear sandals'
ELSE 'Wear sandals' 
END

“ถ้าฤดูกาลไม่เท่ากับฤดูร้อน ให้แสดงอย่าสวมรองเท้าแตะ” ถ้าไม่เช่นนั้น ก็แสดงสวมรองเท้าแตะ”

หมายเหตุ

มักใช้กับ IF และ IIF ดูเพิ่มเติมที่ และ และ OR

OR

ไวยากรณ์<expr1> OR <expr2>
เอาต์พุตบูลีน (True หรือ False)
คำนิยามดำเนินการแยกทางตรรกะในสองนิพจน์
ตัวอย่าง
IF [Season] = "Spring" OR [Season] = "Fall" 
THEN "Sneakers"
END

"ถ้า (ฤดูกาล = ฤดูใบไม้ผลิ) หรือ (ฤดูกาล = ฤดูใบไม้ร่วง) เป็น True ให้แสดงรองเท้าผ้าใบ"

หมายเหตุ

มักใช้กับ IF และ IIF ดูเพิ่มเติมที่ และ และ NOT

หากนิพจน์ใดนิพจน์หนึ่งเป็น TRUE ผลลัพธ์จะเป็น TRUE หากนิพจน์ทั้งสองเป็น FALSE ผลลัพธ์จะเป็น FALSE หากนิพจน์ทั้งสองเป็น NULL ผลลัพธ์จะเป็น NULL

หากคุณสร้างการคำนวณซึ่งแสดงผลลัพธ์ของการเปรียบเทียบ OR บนเวิร์กชีต Tableau จะแสดงเป็น TRUE และ FALSE หากคุณต้องการเปลี่ยนรายการนี้ โปรดใช้พื้นที่ “จัดรูปแบบ” ในกล่องโต้ตอบการจัดรูปแบบ

หมายเหตุ: ตัวดำเนินการ OR จะใช้การประเมินแบบย่อ ซึ่งหมายความว่าหากนิพจน์แรกได้รับการประเมินเป็น TRUE นิพจน์ที่สองก็จะไม่ได้รับการประเมินเลย สิ่งนี้อาจเป็นประโยชน์หากนิพจน์ที่สองส่งผลให้เกิดข้อผิดพลาดเมื่อนิพจน์แรกเป็น TRUE เนื่องจากนิพจน์ที่สองในกรณีนี้ไม่ได้รับการประเมินเลย

THEN

ไวยากรณ์IF <test1> THEN <then1>
[ELSEIF <test2> THEN <then2>...]
[ELSE <default>]
END
คำนิยามส่วนที่จำเป็นของ IF, ELSEIF, หรือ CASE นิพจน์ ใช้เพื่อกำหนดผลลัพธ์ที่จะแสดงหากค่าเฉพาะหรือการทดสอบเป็น True
ตัวอย่าง
IF [Season] = "Summer" THEN 'Sandals' 
ELSEIF [Season] = "Winter" THEN 'Boots'
ELSE 'Sneakers' 
END

“ถ้าฤดูกาล = ฤดูร้อน ก็ให้แสดงรองเท้าแตะ ถ้าไม่เช่นนั้น ให้ดูที่นิพจน์ถัดไป ถ้าฤดูกาล = ฤดูหนาว ก็ให้แสดงรองเท้าบู้ต ถ้าไม่มีนิพจน์ใดเป็นค่า True ให้แสดงรองเท้าผ้าใบ”

CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ”

หมายเหตุ

ใช้กับ CASE, WHEN, IF, ELSEIF, THEN, ELSE และ END

WHEN

ไวยากรณ์CASE <expression>
WHEN <value1> THEN <then1>
WHEN <value2> THEN <then2>
...
[ELSE <default>]
END
คำนิยามส่วนที่จำเป็นของนิพจน์ CASE ค้นหา <value> แรกที่ตรงกับ <expression> และแสดงค่า <then> ที่ตรงกัน
ตัวอย่าง
CASE [Season] 
WHEN 'Summer' THEN 'Sandals'
WHEN 'Winter' THEN 'Boots'
ELSE 'Sneakers'
END

“ดูที่ฟิลด์ฤดูกาล หากค่าเป็นฤดูร้อน ให้แสดงผลรองเท้าแตะ หากค่าเป็นฤดูหนาว ให้แสดงผลรองเท้าบู้ท หากไม่มีตัวเลือกในการคำนวณที่ตรงกับสิ่งที่อยู่ในฟิลด์ฤดูกาล ให้แสดงผลรองเท้าผ้าใบ”

หมายเหตุ

ใช้กับ CASE, THEN, ELSE และ END

CASE ยังรองรับการสร้าง WHEN IN เช่น:

CASE <expression> 
WHEN IN <set1> THEN <then1>
WHEN IN <combinedfield> THEN <then2>
...
ELSE <default>
END

ค่าที่ WHEN IN เปรียบเทียบจะต้องเป็นเซต รายการของค่าตามตัวอักษร หรือฟิลด์รวม ดูเพิ่มเติมที่ IN

ZN

ไวยากรณ์ZN(expression)
เอาต์พุตขึ้นอยู่กับประเภทข้อมูลของ <expression> หรือ 0
คำนิยามแสดง <expression> หากไม่ใช่ค่า null มิฉะนั้นจะแสดงค่าเป็นศูนย์
ตัวอย่าง
ZN([Test Grade])

"หากเกรดการทดสอบไม่เป็นค่า null ให้แสดงค่า หากเกรดการทดสอบเป็น null ให้แสดง 0”

หมายเหตุ

ZN เป็นกรณีพิเศษของ IFNULL โดยที่ทางเลือกหากนิพจน์เป็น null จะเป็น 0 เสมอแทนที่จะระบุไว้ในการคำนวณ

ZN มีประโยชน์อย่างยิ่งเมื่อทำการคำนวณเพิ่มเติม และค่า null จะทำให้การคำนวณทั้งหมดเป็นค่า null อย่างไรก็ตาม โปรดใช้ความระมัดระวังในการตีความผลลัพธ์เหล่านี้ว่าเป็นค่า null ซึ่งไม่ได้มีความหมายเหมือนกันกับ 0 เสมอไป และอาจแสดงถึงข้อมูลที่ขาดหายไป

ดูเพิ่มเติมที่ ISNULL


หมายเหตุ: บางส่วนเป็นตัวดำเนินการเชิงตรรกะที่แท้จริงและจะปรากฏเป็นสีดำ ไม่ใช่สีน้ำเงิน หากต้องการข้อมูลเพิ่มเติม โปรดดู ไวยากรณ์ตัวดำเนินการ

หมายเหตุเกี่ยวกับ CASE, IF และ IIF

CASE มักใช้งานได้ง่ายกว่า IF หรือ IIF ในหลายกรณี IF, IIF และ CASE สามารถใช้สลับกันได้ สามารถเขียนคำสั่ง CASE ใหม่เป็นคำสั่ง IF ได้เสมอ แม้ว่าโดยทั่วไปแล้วฟังก์ชัน CASE จะมีความรัดกุมกว่าและอาจเข้าใจได้ง่ายกว่าก็ตาม อย่างไรก็ตาม ไม่ใช่ทุกคำสั่ง IF ที่สามารถเขียนเป็นคำสั่ง CASE ได้ เนื่องจากแต่ละ ELSEIF สามารถอ้างอิงไปยังฟิลด์อื่นได้

เคล็ดลับ: ลองเปรียบเทียบตัวอย่างโดยใช้ตรรกะเดียวกันกับฟังก์ชันทั้งสามนี้

CASEIFIIF
CASE [Region]
WHEN 'West' THEN 1
WHEN 'East' THEN 2
WHEN 'South' THEN 3
WHEN 'North' Then 4
ELSE 5
END
IF [Region] = 'West' THEN 1
ELSEIF [Region] = 'East' THEN 2
ELSEIF [Region] = 'South' THEN 3
ELSEIF [Region] = 'North' THEN 4
ELSE 5
END
IIF([Region] = 'West', 1,
IIF([Region] = 'East', 2,
IIF([Region] = 'South', 3,
IIF([Region] = 'North', 4,
5, 0)
)
)
)

โครงสร้าง CASE นั้นเรียบง่ายมาก และง่ายต่อการเขียนและทำความเข้าใจ อย่างไรก็ตาม นิพจน์ (ในที่นี้ [ภูมิภาค]) ไม่สามารถเป็นการดำเนินการเชิงตรรกะได้ ซึ่งต่างจาก IF หรือ IIF

ค่า null จะได้รับการจัดการเหมือนกันสำหรับ CASE เช่นเดียวกับค่า IF

โครงสร้าง IF THEN อนุญาตให้ใช้ส่วนคำสั่ง ELSEIF ได้หลายรายการ ซึ่งทำให้การประเมินหลายรายการง่ายกว่า IIF มาก

การจัดการค่า null: ผลลัพธ์ที่ไม่รู้จัก (null) ใดๆ จะได้รับการจัดการโดยส่วนคำสั่ง ELSE เดียวกันกับผลลัพธ์ที่เป็น False ในที่นี้ ภูมิภาคอื่นๆ นอกเหนือจากสี่ที่ระบุไว้ (รวมถึงค่าว่าง) จะได้รับการกำหนดค่าเป็น 5

โครงสร้าง IIF จัดการผลลัพธ์ที่ไม่รู้จักแตกต่างจากผลลัพธ์ที่เป็น False และมีไวยากรณ์ที่แตกต่างจาก IF ข้อเสียเปรียบสำหรับการจัดการค่า null เฉพาะเจาะจงคือการซ้อนกัน ดังที่กล่าวข้างต้น ซึ่งอาจเป็นเรื่องยุ่งยากในการเขียนและทำความเข้าใจ

การจัดการค่า null: ขอบเขตที่ไม่ใช่ค่า null ใดๆ นอกเหนือจากสี่ขอบเขตที่ระบุจะถูกกำหนดค่าเป็น 5 แต่ค่า null จะถูกกำหนดให้เป็น 0

หมายเหตุ: ในหลายๆ ครั้งคุณสามารถใช้กลุ่มเพื่อให้ได้ผลลัพธ์เหมือนกับฟังก์ชัน CASE ที่ซับซ้อนได้ ทดสอบเพื่อดูว่าตัวเลือกหนึ่งมีประสิทธิภาพมากกว่าตัวเลือกอื่นหรือไม่

ตัวอย่าง

ฟังก์ชัน CASE จะมีประโยชน์ในสถานการณ์ต่างๆ เช่น การรับรู้:

CASE LEFT(DATENAME('weekday',[Order Date]),3)
WHEN 'Sun' THEN 0
WHEN 'Mon' THEN 1
WHEN 'Tue' THEN 2
WHEN 'Wed' THEN 3
WHEN 'Thu' THEN 4
WHEN 'Fri' THEN 5
WHEN 'Sat' THEN 6
END

หรือให้ผู้ใช้สามารถเลือกหน่วยวัดที่จะดูในแผนภูมิเมื่อใช้กับพารามิเตอร์(ลิงก์จะเปิดในหน้าต่างใหม่): :

CASE [Choose a Measure]
WHEN "Sales" THEN SUM([Sales])
WHEN "Profit" THEN AVG([Profit])
WHEN "Quantity" THEN COUNT([Quantity])
WHEN "Shipping Cost" THEN MEDIAN([Shipping Cost])
END

สร้างการคำนวณเชิงตรรกะ

ปฏิบัติตามขั้นตอนด้านล่างเพื่อเรียนรู้วิธีสร้างการคำนวณเชิงตรรกะ

  1. ใน Tableau Desktop ให้เชื่อมต่อกับแหล่งข้อมูลที่บันทึกไว้ ตัวอย่าง - Superstore ที่มาพร้อมกับ Tableau
  2. ไปยังเวิร์กชีต
  3. ลากรัฐจากแผงข้อมูลไปยังแถบแถว
  4. ลากหมวดหมู่จากแผงข้อมูลไปยังแถบแถว และวางไว้ที่ด้านขวาของรัฐ
  5. ลากยอดขายจากแผงข้อมูลไปยังแผงคอลัมน์
  6. เลือก “การวิเคราะห์” > สร้างฟิลด์ที่คำนวณ
  7. ในตัวแก้ไขการคำนวณที่เปิดขึ้น ให้ทำดังนี้
    • ตั้งชื่อฟิลด์ที่คำนวณว่า KPI
    • ป้อนสูตรต่อไปนี้:
      SUM([Profit]) > 0

      การคำนวณนี้จะดำเนินการตรวจสอบอย่างรวดเร็วว่าสมาชิกมีค่ามากกว่าศูนย์หรือไม่ หากใช่ การคำนวณจะเป็นจริง หากไม่ใช่ การคำนวณจะเป็นเท็จ

    • เมื่อเสร็จแล้ว ให้คลิกตกลง
  8. ฟิลด์ที่คำนวณใหม่จะปรากฏภายใต้ “การวัดผล” ในแผงข้อมูล คุณสามารถใช้ฟิลด์นี้ในการแสดงเป็นภาพได้มากกว่าหนึ่งรายการ เช่นเดียวกับฟิลด์อื่นๆ

  9. ลาก KPI จากแผงข้อมูลไปยังสีบนการ์ด “เครื่องหมาย”

    ขณะนี้คุณสามารถดูได้แล้วว่าหมวดหมู่ใดที่กำลังสูญเสียเงินในแต่ละรัฐ

ดูเพิ่มเติม

แสดงภาพตัวบ่งชี้ความคืบหน้าที่สำคัญ

ฟังก์ชันใน Tableau

ฟังก์ชัน Tableau (ตามหมวดหมู่)

ฟังก์ชัน Tableau (เรียงตามตัวอักษร)

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ