อย่ากลัวการคำนวณความสัมพันธ์
แม้การคำนวณจะเป็นเรื่องที่น่ากลัว โดยเฉพาะการคำนวณในแหล่งข้อมูลที่ใช้ความสัมพันธ์ยิ่งทวีความน่ากลัวเป็นสิบๆ เท่า แต่คุณไม่จำเป็นต้องกลัวการคำนวณความสัมพันธ์เลย
หมายเหตุ: หากคุณยังไม่คุ้นเคยกับหลักการเบื้องหลังแหล่งข้อมูลที่ใช้ความสัมพันธ์ การอ่าน อย่ากลัวความสัมพันธ์ ก่อนเจาะลึกลงในหัวข้อนี้อาจช่วยคุณได้
ประเภทการคำนวณ
การคำนวณระดับแถวคือการคำนวณระเบียนแต่ละรายการในข้อมูล ตัวอย่างเช่น การทำธุรกรรมด้านการขายแต่ละรายการล้วนมียอดขาย โดยราคาจะปรับเปลี่ยนตามเปอร์เซ็นของส่วนลด: Price * (1- ZN([Discount]))
ซึ่งนี่เป็นการคำนวณการทำธุรกรรมแต่ละรายการแบบแถวต่อแถว ซึ่งผลลัพธ์ที่ได้ควรเป็นการเพิ่มคอลัมน์ใหม่ในแหล่งข้อมูลสำหรับยอดขาย
นอกจากนี้ยังมีการคำนวณรวมอีกด้่วย การคำนวณรวมจะคำนวณในระดับของรายละเอียดของการแสดงเป็นภาพ และค่าเหล่านั้นจะขึ้นอยู่กับโครงสร้างของมุมมอง การนับคือตัวอย่างของการคำนวณรวม ค่าของ Count([Title])
ขึ้นอยู่กับว่าเราต้องการนับตามรูปแบบ ผู้เขียน หรือวันที่ขาย
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับประเภทของการคำนวณ โปรดดู บล็อกของเรา(ลิงก์จะเปิดในหน้าต่างใหม่)
ตารางระดับของรายละเอียด
เนื่องจากตารางแต่ละรายการในแหล่งข้อมูล Tableau ล้วนมีระดับของรายละเอียดเป็นของตัวเอง ซึ่งทำให้ตารางที่เกี่ยวข้องกับการคำนวณมีผลกระทบเป็นอย่างยิ่ง ตัวอย่างเช่น ในอดีตที่ผ่านมาของ Tableau (ก่อน 2020.2 ช่วงก่อนความสัมพันธ์) จำนวนของระเบียนสามารถนับได้ด้วยการสร้างการคำนวณให้มีค่าคงที่เป็น 1
แล้วจึงรวมการคำนวณดังกล่าว 1
ถูกกำหนดให้กับแถวแต่ละแถวในแหล่งข้อมูล ดังนั้นผลรวมจึงเท่ากับจำนวนของแถว
แต่ตอนนี้การคำนวณดังกล่าวจะมีค่าเท่ากับ 1
เนื่องจากไม่มีระดับแบบสากลของรายละเอียดสำหรับแหล่งข้อมูลทั้งหมด และการคำนวณแบบคงที่ได้อยู่ในพื้นที่ที่ไม่ได้มอบหมายตรงด้านล่างของแผงข้อมูล ทำให้มีระดับของรายละเอียดเป็นของตัวเอง การสรุปผลของ 1
จึงเท่ากับ 1
อย่างที่ได้กล่าวไว้ก่อนหน้านี้ว่าการคำนวณที่มีระดับของรายละเอียดเดียวกับตาราง มักเกิดขึ้นเพราะเป็นการคำนวณที่มีฟิลด์จากตาราง อยู่ในตารางในแผงข้อมูล ตัวอย่างเช่น การเชื่อมโยงของชื่อจริงและนามสกุลเพื่อให้ได้ชื่อเต็มของผู้เขียนแต่ละราย (ซึ่งเป็น [First Name] + " " + [Last Name]
) จะอยู่ในตารางผู้เขียน
แต่หากเราต้องใช้ฟิลด์จากตารางต่างๆ ในการคำนวณรายการเดียว การคำนวณจะไปยังพื้นที่ที่ไม่ได้มอบหมายตรงด้านล่างของแผงข้อมูล ซึ่งเรียกว่าการคำนวณระดับแถวแบบข้ามตาราง ซึ่งต้องมีการรวมตารางในระดับแถวมาเกี่ยวข้องจึงอาจส่งผลกระทบต่อประสิทธิภาพได้ (ตรวจสอบให้แน่ใจว่าได้ตั้งค่าความไม่ซ้ำกันในตัวเลือกประสิทธิภาพของความสัมพันธ์แล้ว)
การกำหนดระดับของรายละเอียด
เนื่องจากระดับของรายละเอียดของตารางเป็นสิ่งที่ควบคุมผลลัพธ์ที่แสดงของการคำนวณ การคำนวณในตารางที่เหมาะสมจึงเป็นสิ่งสำคัญ สามารถใช้นิพจน์ระดับรายละเอียด FIXED เพื่อดึงการคำนวณไปยังตารางที่เฉพาะเจาะจงได้ ฟิลด์นิพจน์จะถูกกำหนดไว้เพื่อ (การประกาศมิติข้อมูล(ลิงก์จะเปิดในหน้าต่างใหม่)) ระบุระดับของรายละเอียดของผลลัพธ์
ตัวอย่าง: แนะนำหนังสือของผู้เขียน
ถาม: ผู้เขียนแต่ละรายต้องเข้าร่วมงานแนะนำหนังสือทั้งหมดกี่ครั้ง
ตอบ: ตัวเลขนี้ควร “เป็นของ” ผู้เขียนแต่ละราย ดังนั้นตัวเลขจึงต้องอยู่ที่ตารางผู้เขียน
- งานแนะนำหนังสือของผู้เขียน =
{FIXED [Author Name] : SUM([Book Tour Events])}
- (สามารถคิดให้เป็นภาษาทั่วไปได้ เช่น “สำหรับนักเขียนแต่ละราย จำนวนงานแนะนำหนังสือทั้งหมดจะเชื่อมโยงกับตัวนักเขียนเหล่านั้น”)
ถาม: มีนักเขียนกี่รายที่ไม่เข้าร่วมงานแนะนำหนังสือ
ตอบ: ก็น่าลองคำนวณแบบนี้เหมือนกันนะ
COUNTD(IF ISNULL([Book Tour Events]) THEN ([Author Name]) END)
- (สามารถคิดให้เป็นภาษาทั่วไปได้ เช่น “หากงานแนะนำหนังสือเป็น NULL ให้ส่งคืนค่าเป็นชื่อผู้เขียน นับชื่อผู้เขียนที่ไม่ซ้ำกัน”)
แต่ การคำนวณนี้เป็นการคำนวณระดับแถวแบบข้ามตารางเนื่องจากงานแนะนำหนังสือมาจากตารางซีรีส์ และชื่อผู้เขียนมาจากตารางผู้เขียน และการคำนวณแบบข้ามตารางดังกล่าวใช้การรวมภายใน ซึ่งหมายความว่าถ้าไม่มีค่าที่เกี่ยวข้องกันจากทั้งสองตาราง แถวจะถูกละทิ้งจากผลลัพธ์การรวม ซึ่งหมายความว่าเรากำลังขอให้ Tableau นับสิ่งที่ไม่มีอยู่จริง โปรดทราบว่าหากฟิลด์ทั้งสองฟิลด์อยู่ในตารางเดียวกัน วิธีนี้จะถือว่าเป็นวิธีที่ยอดเยี่ยม การคำนวณไม่ใช่เรื่องที่ไม่ดีเว้นแต่ข้อเท็จจริงที่ว่าการคำนวณเข้ากันได้ไม่ดีนักกับโครงสร้างของแหล่งข้อมูล
แต่เราต้องระบุการเข้าร่วมและการไม่เข้าร่วมงานแนะนำหนังสือของผู้เขียนแต่ละราย และเก็บผลลัพธ์ไว้ในตารางผู้เขียน เมื่อแฟล็กผู้เขียนแต่ละรายไว้เป็น “เข้าร่วมการแนะนำหนังสือ” หรือไม่เข้าร่วม เราจะสามารถนับจำนวนผู้ที่จัดงานแนะนำหนังสือได้
- เป็นผู้เข้าร่วมงานแนะนำหนังสือหรือไม่ =
IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN "No" ELSE "Yes" END
- (สามารถคิดให้เป็นภาษาทั่วไปได้ เช่น “สำหรับนักเขียนแต่ละราย ให้นับจำนวนงานแนะนำหนังสือ หากจำนวนนับเป็นศูนย์ ให้ทำป้ายกำกับผู้เขียนว่า ‘ไม่’ หรือทำป้ายกำกับว่า ‘ใช่’” การตั้งชื่อฟิลด์ว่า “เป็นผู้เข้าร่วมงานแนะนำหนังสือหรือไม่” จะทำให้คำว่าไม่และใช่ปรากฏขึ้นโดยเรียงกันเป็นแถว)
ทำให้ตอนนี้เราสามารถนับจำนวนของผู้ที่เป็นไม่ และตอบคำถามแรกเริ่มได้
หากการคำนวณของเราคือผู้เขียนที่ไม่มีการแนะนำหนังสือ = IF [Book tour participant?]= "No" THEN ([Author Name]) END
เราจะได้รายชื่อของผู้เขียนที่ไม่จัดงานแนะนำหนังสือ (ซึ่งคิดได้เป็น “สำหรับผู้เขียนทุกรายที่เป็นผู้เข้าร่วมงานแนะนำหนังสือหรือไม่ เป็นไม่ ให้ระบุชื่อของผู้เขียน”)
หากการคำนวณของเราเป็น COUNTD(IF [Book tour participant?]= "No" THEN ([Author Name]) END)
เราจะได้คำตอบเป็นตัวเลขที่จะอยู่ในพื้นที่ที่ไม่ได้มอบหมายตรงด้านล่างของแผงข้อมูล เพราะเหตุใด เนื่องจากการคำนวณเป็นแบบรวม
คำถามโบนัส:
เป็นไปได้หรือไม่ที่การใช้การคำนวณโครงสร้างของ เป็นผู้เข้าร่วมงานแนะนำหนังสือหรือไม่ โดยตรงจะสามารถส่งคืนรายชื่อของผู้เขียนได้ IF {FIXED [Author Name]: COUNT([Book Tour Events])} = 0 THEN ([Author Name]) END
การคำนวณนี้จะอยู่ตรงส่วนใดของแผงข้อมูล เพราะเหตุใด ลองคำนวณได้ในสำเนา Tableau Desktop ของคุณหรือดูได้ที่ ดาวน์โหลดเวิร์กบุ๊กนี้ (ต้องมี Tableau Desktop 2020.2 หรือสูงกว่า เมื่ออยู่ในเวิร์กบุ๊ก ให้คลิกขวาที่การคำนวณในแผงข้อมูลแล้วเลือกแก้ไขเพื่อเปิดเครื่องมือแก้ไขการคำนวณแล้วดูคำอธิบายในความคิดเห็นของการคำนวณ)
แหล่งข้อมูลที่เกี่ยวข้อง
รู้สึกเหมือนจมทะเลข้อมูลและต้องการถอยหลังสักก้าวใช่ไหม ลอง อย่ากลัวความสัมพันธ์
พร้อมจะสำรวจวิธีทำการวิเคราะห์ที่ซับซ้อนด้วยความสัมพันธ์แล้วใช่ไหม โปรดดู อย่ากลัวความสัมพันธ์ที่ลึกซึ้ง
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการสนับสนุนทางเทคนิคของความสัมพันธ์จากทีมการจัดการผลิตภัณฑ์โดยตรง โปรดดู ชุดข้อมูลเกี่ยวกับความสัมพันธ์ในบล็อก Tableau
- ความสัมพันธ์ ตอนที่ 1: แนะนำการสร้างแบบจำลองข้อมูลใหม่ใน Tableau(ลิงก์จะเปิดในหน้าต่างใหม่)
- ความสัมพันธ์ ตอนที่ 2: คำแนะนำและเคล็ดลับ(ลิงก์จะเปิดในหน้าต่างใหม่)
- ความสัมพันธ์ ตอนที่ 3: การถามคำถามในตารางที่เกี่ยวข้องหลายตาราง(ลิงก์จะเปิดในหน้าต่างใหม่)
และดูวิดีโอพอดคาสต์เกี่ยวกับความสัมพันธ์จากการวิเคราะห์การดำเนินการ(ลิงก์จะเปิดในหน้าต่างใหม่) เช่น เหตุใด Tableau จึงคิดค้น "ความสัมพันธ์" ขึ้น(ลิงก์จะเปิดในหน้าต่างใหม่) คลิก "วิดีโอพอดคาสต์" ในไลบรารี(ลิงก์จะเปิดในหน้าต่างใหม่)เพื่อดูเพิ่มเติม