บทนำ

เสร็จสมบูรณ์เมื่อ

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

หมายเหตุ

ตารางจากการคำนวณไม่สามารถเชื่อมต่อกับข้อมูลภายนอกได้ คุณต้องใช้ Power Query เพื่อทำงานนั้นให้สำเร็จ

สูตรตารางจากการคำนวณต้องส่งคืนวัตถุตาราง สูตรที่ง่ายที่สุดสามารถทำซ้ำตารางแบบจำลองที่มีอยู่ได้

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

ทำซ้ำตาราง

ส่วนต่อไปนี้อธิบายถึงความท้าทายทั่วไปในการออกแบบที่สามารถแก้ไขได้โดยการสร้างตารางจากการคำนวณ ขั้นแรกคุณควรดาวน์โหลดและเปิดไฟล์ Adventure Works DW 2020 M03.pbix จากนั้นเปลี่ยนเป็นแผนภาพแบบจำลอง

ในแผนภาพแบบจําลอง โปรดสังเกตว่าตารางยอดขายมีความสัมพันธ์สามรายการกับตารางวันที่

รูปภาพจะแสดงสองตารางต่อไปนี้: ยอดขายและวันที่ มีสามความสัมพันธ์ระหว่างตาราง มีเพียงความสัมพันธ์เดียวเท่านั้นที่ใช้งานอยู่

แผนภาพแบบจำลองแสดงความสัมพันธ์สามรายการเนื่องจากตารางยอดขายเก็บข้อมูลยอดขายตามวันที่สั่งซื้อ วันที่จัดส่ง และวันที่ครบกำหนด ถ้าคุณตรวจสอบ OrderDateKey, ShipDateKey, และ DueDateKey ให้สังเกตว่าความสัมพันธ์หนึ่งจะแสดงด้วยเส้นทึบซึ่งเป็นความสัมพันธ์ที่ใช้งานอยู่ ความสัมพันธ์อื่นๆ ซึ่งแสดงด้วยเส้นประคือความสัมพันธ์ที่ไม่ได้ใช้งาน

หมายเหตุ

มีความสัมพันธ์ที่ใช้งานอยู่เท่านั้นที่สามารถมีอยู่ระหว่างตารางแบบจำลองทั้งสองรายการได้

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

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

ถัดไป ให้เพิ่มตารางใหม่เพื่ออนุญาตให้ผู้ใช้รายงานกรองยอดขายตามวันที่จัดส่ง สลับไปยังมุมมองรายงาน จากนั้นบนแท็บริบบอน การสร้างแบบจําลอง จากภายในกลุ่ม การคํานวณ ให้เลือกตารางใหม่

รูปภาพแสดงแท็บ ribbon ของการสร้างแบบจำลอง Power BI Desktop จากภายในกลุ่มการคำนวณ คำสั่งตารางใหม่จะถูกเน้น

ในแถบสูตร (ที่อยู่ใต้ ribbon) ให้ป้อนข้อกําหนดตารางจากการคํานวณต่อไปนี้แล้วกด Enter

Ship Date = 'Date'

ข้อกําหนดตารางจากการคํานวณจะทําซ้ําข้อมูลตารางวันที่เพื่อสร้างตารางใหม่ที่มีชื่อว่าวันที่จัดส่ง ตารางวันที่จัดส่งมีคอลัมน์และแถวเดียวกันกับตารางวันที่ เมื่อรีเฟรชข้อมูลตาราง วันที่ ตาราง วันที่จัดส่ง จะคํานวณใหม่เพื่อให้สามารถซิงค์ได้เสมอ

สลับไปยังไดอะแกรมแบบจําลอง แล้วสังเกตการเพิ่มตารางวันที่จัดส่ง

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

ถัดไป ให้สร้างความสัมพันธ์ระหว่างคอลัมน์ DateKey ในตารางวันที่จัดส่งและคอลัมน์ ShipDateKey ในตารางยอดขาย คุณสามารถสร้างความสัมพันธ์ได้โดยการลากคอลัมน์ DateKey ในตารางวันที่จัดส่งไปยังคอลัมน์ ShipDateKey ในตารางยอดขาย

ตารางจากการคํานวณเฉพาะข้อมูลที่ซ้ํากันเท่านั้น ซึ่งไม่ซ้ํากันคุณสมบัติแบบจําลองหรือวัตถุต่าง ๆ เช่น การมองเห็นคอลัมน์หรือลําดับชั้น คุณจะต้องตั้งค่าสําหรับตารางใหม่ ถ้าจําเป็น

เคล็ดลับ

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

หากต้องการทําการออกแบบตาราง วันที่จัดส่ง ให้เสร็จสมบูรณ์ คุณสามารถ:

  • เปลี่ยนชื่อคอลัมน์ต่อไปนี้:
    • วันที่เป็นวันที่จัดส่ง
    • ปีบัญชีเป็นปีบัญชีที่จัดส่ง
    • ไตรมาสปีบัญชีเป็นไตรมาสปีบัญชีที่จัดส่ง
    • เดือนเป็นเดือนที่จัดส่ง
    • วันที่แบบเต็มเป็นวันที่จัดส่งแบบเต็ม
  • จัดเรียงคอลัมน์วันที่แบบเต็มโดยคอลัมน์วันที่จัดส่ง
  • จัดเรียงเดือนที่จัดส่งโดยคอลัมน์ MonthKey
  • ซ่อนคอลัมน์ MonthKey
  • สร้างลำดับชั้นที่ชื่อปีบัญชีด้วยระดับดังต่อไปนี้:
    • ปีบัญชีที่จัดส่ง
    • ไตรมาสปีบัญชีที่จัดส่ง
    • เดือนที่จัดส่ง
    • วันที่จัดส่งแบบเต็ม
  • ทำเครื่องหมายตารางวันที่จัดส่งเป็นตารางวันที่โดยใช้คอลัมน์วันที่จัดส่ง

ตารางจากการคำนวณมีประโยชน์ในการทำงานในสถานการณ์ต่างๆ เมื่อมีหลายความสัมพันธ์ระหว่างสองตารางที่มีการอธิบายไว้ก่อนหน้านี้ นอกจากนี้ยังสามารถใช้ในการเพิ่มตารางวันที่ลงในแบบจำลองของคุณได้อีกด้วย ตารางวันที่จะต้องใช้ตัวกรองเวลาพิเศษที่เรียกว่าตัวแสดงเวลา

สร้างตารางวันที่

ในตัวอย่างถัดไป ตารางจากการคํานวณที่สองจะถูกสร้างขึ้น ครั้งนี้โดยใช้ CALENDARAUTO ฟังก์ชัน DAX

สร้างตารางจากการคํานวณ วันที่ครบกําหนด โดยใช้ข้อกําหนดต่อไปนี้

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 กรกฎาคม 2017

หลังจากที่เลือกคอลัมน์วันที่ ให้ตรวจสอบข้อความในแถบสถานะ (อยู่ในมุมล่างซ้าย) ซึ่งอธิบายจำนวนแถวที่ตารางจัดเก็บและจำนวนค่าที่แตกต่างกันที่พบในคอลัมน์ที่เลือก

รูปภาพแสดงข้อความสถานะ: ตาราง: คอลัมน์วันที่ครบกำหนด (1,461 แถว): วันที่ (ค่าที่แตกต่าง 1,461 ค่า)

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

ตารางจากการคํานวณ วันที่ครบกําหนด จะคํานวณแต่ละครั้งที่ตารางที่มีการรีเฟรชคอลัมน์วันที่ กล่าวอีกนัยหนึ่งคือ เมื่อแถวถูกโหลดลงในตาราง ยอดขาย โดยมีวันที่สั่งซื้อในวันที่ 1 กรกฎาคม 2022 ตาราง วันที่ครบกําหนด จะขยายโดยอัตโนมัติเพื่อรวมวันที่จนถึงสิ้นปีถัดไป: 30 มิถุนายน 2023

ตาราง วันที่ครบกําหนด จําเป็นต้องใช้คอลัมน์เพิ่มเติมเพื่อสนับสนุนการกรองและการจัดกลุ่มที่รู้จักโดยเฉพาะตามปี ไตรมาส และเดือน