บทนำ
คุณสามารถเขียนสูตรนิพจน์การวิเคราะห์ข้อมูล (DAX) เพื่อเพิ่มตารางที่มีคำนวณ ให้กับโมเดลของคุณได้ สูตรสามารถทำซ้ำหรือแปลงข้อมูลแบบจำลองที่มีอยู่ได้เพื่อสร้างตารางใหม่
หมายเหตุ
ตารางจากการคำนวณไม่สามารถเชื่อมต่อกับข้อมูลภายนอกได้ คุณต้องใช้ Power Query เพื่อทำงานนั้นให้สำเร็จ
สูตรตารางจากการคำนวณต้องส่งคืนวัตถุตาราง สูตรที่ง่ายที่สุดสามารถทำซ้ำตารางแบบจำลองที่มีอยู่ได้
ตารางจากการคำนวณมีค่าใช้จ่าย: เพิ่มขนาดพื้นที่จัดเก็บแบบจำลองและสามารถยืดเวลารีเฟรชข้อมูลได้ สาเหตุเป็นเพราะตารางจากการคำนวณจะคำนวณใหม่เมื่อมีการอ้างอิงสูตรกับตารางที่รีเฟรช
ทำซ้ำตาราง
ส่วนต่อไปนี้อธิบายถึงความท้าทายทั่วไปในการออกแบบที่สามารถแก้ไขได้โดยการสร้างตารางจากการคำนวณ ขั้นแรกคุณควรดาวน์โหลดและเปิดไฟล์ Adventure Works DW 2020 M03.pbix จากนั้นเปลี่ยนเป็นแผนภาพแบบจำลอง
ในแผนภาพแบบจําลอง โปรดสังเกตว่าตารางยอดขายมีความสัมพันธ์สามรายการกับตารางวันที่
แผนภาพแบบจำลองแสดงความสัมพันธ์สามรายการเนื่องจากตารางยอดขายเก็บข้อมูลยอดขายตามวันที่สั่งซื้อ วันที่จัดส่ง และวันที่ครบกำหนด ถ้าคุณตรวจสอบ OrderDateKey, ShipDateKey, และ DueDateKey ให้สังเกตว่าความสัมพันธ์หนึ่งจะแสดงด้วยเส้นทึบซึ่งเป็นความสัมพันธ์ที่ใช้งานอยู่ ความสัมพันธ์อื่นๆ ซึ่งแสดงด้วยเส้นประคือความสัมพันธ์ที่ไม่ได้ใช้งาน
หมายเหตุ
มีความสัมพันธ์ที่ใช้งานอยู่เท่านั้นที่สามารถมีอยู่ระหว่างตารางแบบจำลองทั้งสองรายการได้
ในไดอะแกรมให้เลื่อนเคอร์เซอร์ไปไว้เหนือความสัมพันธ์ที่ใช้งานอยู่เพื่อเน้นคอลัมน์ที่เกี่ยวข้องซึ่งเป็นวิธีที่คุณจะโต้ตอบกับไดอะแกรมแบบจำลองเพื่อเรียนรู้เกี่ยวกับคอลัมน์ที่เกี่ยวข้อง ในกรณีนี้ ความสัมพันธ์ที่ใช้งานอยู่จะกรองคอลัมน์ OrderDateKey ในตารางยอดขาย ดังนั้นตัวกรองที่นําไปใช้กับตาราง วันที่ จะเผยแพร่ไปยังตาราง ยอดขาย เพื่อกรองตามวันที่สั่งซื้อ โดยจะไม่กรองตามวันที่จัดส่งหรือวันครบกําหนด
ขั้นตอนถัดไปคือการลบความสัมพันธ์ที่ไม่ได้ใช้งานทั้งสองระหว่างตารางวันที่และตารางยอดขาย หากต้องการลบความสัมพันธ์ ให้คลิกขวาแล้วเลือกลบในเมนูบริบท ตรวจสอบให้แน่ใจว่าคุณลบความสัมพันธ์ทั้งสองที่ไม่ได้ใช้งาน
ถัดไป ให้เพิ่มตารางใหม่เพื่ออนุญาตให้ผู้ใช้รายงานกรองยอดขายตามวันที่จัดส่ง สลับไปยังมุมมองรายงาน จากนั้นบนแท็บริบบอน การสร้างแบบจําลอง จากภายในกลุ่ม การคํานวณ ให้เลือกตารางใหม่
ในแถบสูตร (ที่อยู่ใต้ ribbon) ให้ป้อนข้อกําหนดตารางจากการคํานวณต่อไปนี้แล้วกด Enter
Ship Date = 'Date'
ข้อกําหนดตารางจากการคํานวณจะทําซ้ําข้อมูลตารางวันที่เพื่อสร้างตารางใหม่ที่มีชื่อว่าวันที่จัดส่ง ตารางวันที่จัดส่งมีคอลัมน์และแถวเดียวกันกับตารางวันที่ เมื่อรีเฟรชข้อมูลตาราง วันที่ ตาราง วันที่จัดส่ง จะคํานวณใหม่เพื่อให้สามารถซิงค์ได้เสมอ
สลับไปยังไดอะแกรมแบบจําลอง แล้วสังเกตการเพิ่มตารางวันที่จัดส่ง
ถัดไป ให้สร้างความสัมพันธ์ระหว่างคอลัมน์ DateKey ในตารางวันที่จัดส่งและคอลัมน์ ShipDateKey ในตารางยอดขาย คุณสามารถสร้างความสัมพันธ์ได้โดยการลากคอลัมน์ DateKey ในตารางวันที่จัดส่งไปยังคอลัมน์ ShipDateKey ในตารางยอดขาย
ตารางจากการคํานวณเฉพาะข้อมูลที่ซ้ํากันเท่านั้น ซึ่งไม่ซ้ํากันคุณสมบัติแบบจําลองหรือวัตถุต่าง ๆ เช่น การมองเห็นคอลัมน์หรือลําดับชั้น คุณจะต้องตั้งค่าสําหรับตารางใหม่ ถ้าจําเป็น
เคล็ดลับ
คุณสามารถเปลี่ยนชื่อคอลัมน์ของตารางจากการคำนวณได้ ในตัวอย่างนี้ เป็นความคิดที่ดีที่จะเปลี่ยนชื่อคอลัมน์เพื่อให้อธิบายวัตถุประสงค์ของคอลัมน์นั้นๆ ได้ดียิ่งขึ้น ตัวอย่างเช่น คอลัมน์ ปีบัญชี ในตาราง วันที่จัดส่ง สามารถเปลี่ยนชื่อเป็น ปีบัญชีที่จัดส่งได้ ดังนั้นเมื่อมีการใช้เขตข้อมูลจากตาราง วันที่จัดส่ง ในวิชวล ชื่อจะถูกรวมไว้ในคําบรรยายโดยอัตโนมัติเช่น ชื่อวิชวลหรือป้ายชื่อแกน
หากต้องการทําการออกแบบตาราง วันที่จัดส่ง ให้เสร็จสมบูรณ์ คุณสามารถ:
- เปลี่ยนชื่อคอลัมน์ต่อไปนี้:
- วันที่เป็นวันที่จัดส่ง
- ปีบัญชีเป็นปีบัญชีที่จัดส่ง
- ไตรมาสปีบัญชีเป็นไตรมาสปีบัญชีที่จัดส่ง
- เดือนเป็นเดือนที่จัดส่ง
- วันที่แบบเต็มเป็นวันที่จัดส่งแบบเต็ม
- จัดเรียงคอลัมน์วันที่แบบเต็มโดยคอลัมน์วันที่จัดส่ง
- จัดเรียงเดือนที่จัดส่งโดยคอลัมน์ MonthKey
- ซ่อนคอลัมน์ MonthKey
- สร้างลำดับชั้นที่ชื่อปีบัญชีด้วยระดับดังต่อไปนี้:
- ปีบัญชีที่จัดส่ง
- ไตรมาสปีบัญชีที่จัดส่ง
- เดือนที่จัดส่ง
- วันที่จัดส่งแบบเต็ม
- ทำเครื่องหมายตารางวันที่จัดส่งเป็นตารางวันที่โดยใช้คอลัมน์วันที่จัดส่ง
ตารางจากการคำนวณมีประโยชน์ในการทำงานในสถานการณ์ต่างๆ เมื่อมีหลายความสัมพันธ์ระหว่างสองตารางที่มีการอธิบายไว้ก่อนหน้านี้ นอกจากนี้ยังสามารถใช้ในการเพิ่มตารางวันที่ลงในแบบจำลองของคุณได้อีกด้วย ตารางวันที่จะต้องใช้ตัวกรองเวลาพิเศษที่เรียกว่าตัวแสดงเวลา
สร้างตารางวันที่
ในตัวอย่างถัดไป ตารางจากการคํานวณที่สองจะถูกสร้างขึ้น ครั้งนี้โดยใช้ CALENDARAUTO
ฟังก์ชัน DAX
Create ตารางจากการคํานวณวันที่ครบกําหนดโดยใช้ข้อกําหนดต่อไปนี้
Due Date = CALENDARAUTO(6)
ฟังก์ชัน CALENDARAUTO
DAX ใช้อาร์กิวเมนต์ที่เป็นตัวเลือกเดียวซึ่งเป็นจํานวนเดือนที่ผ่านมาของปีและส่งกลับตารางแบบคอลัมน์เดียว ถ้าคุณไม่ได้ส่งผ่านจำนวนเดือน จะมีการสันนิษฐานว่าเป็น 12 (สำหรับเดือนธันวาคม) ตัวอย่างเช่น ที่ Adventure Works ปีการเงินของพวกเขาจะสิ้นสุดในวันที่ 30 มิถุนายนของทุกปี ดังนั้นค่า 6 (สำหรับเดือนมิถุนายน) จะถูกส่งผ่าน
ฟังก์ชันนี้จะสแกนคอลัมน์วันที่และวันที่/เวลาทั้งหมดในแบบจำลองของคุณเพื่อกำหนดค่าวันที่ที่เก็บไว้แรกเริ่มและล่าสุด จากนั้นจะสร้างชุดของวันที่ทั้งหมดที่ครอบคลุมทุกวันที่ในแบบจำลองของคุณ โปรดตรวจสอบให้แน่ใจว่ามีการโหลดวันที่แบบเต็มปี ตัวอย่างเช่น หากวันที่แรกเริ่มที่เก็บไว้ในแบบจําลองของคุณคือ 15 ตุลาคม 2021 วันที่แรกเริ่มที่ฟังก์ชันส่งคืน CALENDARAUTO
คือ 1 กรกฎาคม 2021 หากวันที่ล่าสุดที่เก็บไว้ในแบบจําลองคือ 15 มิถุนายน 2022 วันที่สุดท้ายที่ฟังก์ชันส่งคืน CALENDARAUTO
จะเป็นวันที่ 30 มิถุนายน 2022
เพื่อความมีประสิทธิภาพ ฟังก์ชันจะ CALENDARAUTO
รับประกันว่าเป็นไปตามข้อกําหนดต่อไปนี้ในการ ทําเครื่องหมายตารางวันที่ :
- ตารางต้องมีคอลัมน์ของวันที่ชนิดข้อมูล
- คอลัมน์ต้องประกอบด้วยปีที่สมบูรณ์
- คอลัมน์ต้องไม่มีวันที่หายไป
เคล็ดลับ
คุณยังสามารถสร้างตารางวันที่โดยใช้ CALENDAR
ฟังก์ชัน DAX และส่งผ่านในค่าวันที่สองค่าซึ่งแสดงถึงช่วงวันที่ได้ ฟังก์ชันจะสร้างหนึ่งแถวสำหรับแต่ละวันที่ภายในช่วง คุณสามารถส่งผ่านค่าวันที่แบบคงที่หรือส่งผ่านนิพจน์ที่ดึงข้อมูลวันที่แรกเริ่ม/ล่าสุดจากคอลัมน์ที่ระบุในแบบจำลองของคุณ
ถัดไป ให้สลับไปยังมุมมองข้อมูล จากนั้นในบานหน้าต่างเขตข้อมูล ให้เลือกตารางวันที่ครบกําหนด ในตอนนี้ ให้ตรวจสอบคอลัมน์ของวันที่ คุณอาจต้องการจัดลำดับให้ดูวันที่แรกเริ่มในแถวแรกโดยเลือกลูกศรภายในส่วนหัวคอลัมน์วันที่ จากนั้นจัดเรียงจากน้อยไปมาก
หมายเหตุ
การสั่งซื้อหรือการกรองคอลัมน์จะไม่เปลี่ยนแปลงวิธีการจัดเก็บค่า ฟังก์ชันเหล่านี้ช่วยให้คุณสำรวจและทำความเข้าใจข้อมูล
หลังจากที่เลือกคอลัมน์วันที่ ให้ตรวจสอบข้อความในแถบสถานะ (อยู่ในมุมล่างซ้าย) ซึ่งอธิบายจำนวนแถวที่ตารางจัดเก็บและจำนวนค่าที่แตกต่างกันที่พบในคอลัมน์ที่เลือก
เมื่อแถวตารางและค่าที่แตกต่างกันเหมือนกัน นั่นหมายความว่าคอลัมน์ประกอบด้วยค่าที่ไม่ซ้ำกัน ปัจจัยดังกล่าวเป็นสิ่งสำคัญสำหรับเหตุผลสองประการ: ซึ่งเป็นไปตามความต้องการในการทำเครื่องหมายตารางวันที่ และจะอนุญาตให้ใช้คอลัมน์นี้ในความสัมพันธ์แบบจำลองเป็นฝั่งเดียว
ตารางจากการคํานวณ วันที่ครบกําหนด จะคํานวณแต่ละครั้งที่ตารางที่มีการรีเฟรชคอลัมน์วันที่ กล่าวอีกนัยหนึ่งคือ เมื่อแถวถูกโหลดลงในตาราง ยอดขาย โดยมีวันที่สั่งซื้อในวันที่ 1 กรกฎาคม 2022 ตาราง วันที่ครบกําหนด จะขยายโดยอัตโนมัติเพื่อรวมวันที่จนถึงสิ้นปีถัดไป: 30 มิถุนายน 2023
ตาราง วันที่ครบกําหนด จําเป็นต้องใช้คอลัมน์เพิ่มเติมเพื่อสนับสนุนการกรองและการจัดกลุ่มที่รู้จักโดยเฉพาะตามปี ไตรมาส และเดือน