สถานการณ์ของ DAX ใน Power Pivot

นำไปใช้กับ
Excel for Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

ส่วนนี้มีลิงก์ไปยังตัวอย่างที่สาธิตการใช้สูตร DAX ในสถานการณ์ต่อไปนี้

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

ในบทความนี้

เริ่มต้นใช้งาน

เยี่ยมชม Wiki ศูนย์ทรัพยากร DAX ที่คุณสามารถค้นหาข้อมูลทุกประเภทเกี่ยวกับ DAX รวมถึงบล็อก ตัวอย่าง เอกสารทางเทคนิค และวิดีโอที่จัดหาโดยผู้เชี่ยวชาญชั้นนําในอุตสาหกรรมและ Microsoft

สถานการณ์: การดําเนินการคํานวณที่ซับซ้อน

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

สร้างการคํานวณแบบกําหนดเองสําหรับ PivotTable

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

นําตัวกรองไปใช้กับสูตร

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

ฟังก์ชัน FILTER ให้คุณระบุเกณฑ์การกรองโดยใช้นิพจน์ ในขณะที่ฟังก์ชันอื่นๆ ได้รับการออกแบบมาโดยเฉพาะเพื่อกรองค่าว่างออกไป

เอาตัวกรองออกแบบเลือกเพื่อเลือกเพื่อสร้างอัตราส่วนแบบไดนามิก

ด้วยการสร้างตัวกรองแบบไดนามิกในสูตร คุณสามารถตอบคําถามต่อไปนี้ได้อย่างง่ายดาย

  • ยอดขายของผลิตภัณฑ์ปัจจุบันมีส่วนสนับสนุนต่อยอดขายรวมของปีเท่าใด
  • แผนกนี้มีส่วนสนับสนุนต่อผลกําไรรวมสําหรับทุกปีการดําเนินงานมากน้อยเพียงใดเมื่อเทียบกับแผนกอื่น ๆ

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

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

สําหรับตัวอย่างอื่นๆ ของวิธีการคํานวณอัตราส่วนและเปอร์เซ็นต์ ให้ดูหัวข้อต่อไปนี้

การใช้ค่าจากลูปภายนอก

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

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

สถานการณ์: ทํางานกับข้อความและวันที่

ส่วนนี้มีลิงก์ไปยังหัวข้ออ้างอิงของ DAX ที่มีตัวอย่างของสถานการณ์สมมติทั่วไปที่เกี่ยวข้องกับการทํางานกับข้อความ การแยกและเขียนค่าวันที่และเวลา หรือการสร้างค่าตามเงื่อนไข

สร้างคอลัมน์หลักโดยการเรียงต่อกัน

Power Pivot ไม่อนุญาตให้ใช้คีย์ผสม ดังนั้น ถ้าคุณมีคีย์ผสมในแหล่งข้อมูลของคุณ คุณอาจต้องรวมคีย์ผสมเป็นคอลัมน์คีย์เดียว หัวข้อต่อไปนี้เป็นตัวอย่างหนึ่งของวิธีการสร้างคอลัมน์จากการคํานวณโดยยึดตามคีย์ผสม

Compose a date based on the day part extracted from a text date

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

ตัวอย่างเช่น ถ้าคุณมีคอลัมน์ของวันที่ที่ถูกแสดงเป็นจํานวนเต็ม แล้วนําเข้าเป็นสตริงข้อความ คุณสามารถแปลงสตริงเป็นค่าวันที่/เวลาได้โดยใช้สูตรต่อไปนี้

=DATE(RIGHT([Value1],4),LEFT([Value1],2),MID([Value1],2))

ค่า 1 ผลลัพธ์
01032009 1/3/2009
12132008 12/13/2008
06252007 6/25/2007

หัวข้อต่อไปนี้ให้ข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันที่ใช้ในการแยกและเขียนวันที่

กําหนดวันที่หรือรูปแบบตัวเลขแบบกําหนดเอง

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

เปลี่ยนชนิดข้อมูลโดยใช้สูตร

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

  • เมื่อต้องการแปลงวันที่หรือสตริงตัวเลขเป็นตัวเลข ให้คูณด้วย 1.0 ตัวอย่างเช่น สูตรต่อไปนี้จะคํานวณวันที่ปัจจุบันลบด้วย 3 วัน แล้วจึงให้ผลลัพธ์ค่าจํานวนเต็มที่สอดคล้องกัน
    =(TODAY()-3)*1.0
  • เมื่อต้องการแปลงวันที่ ตัวเลข หรือค่าสกุลเงินเป็นสตริง ให้ต่อค่าด้วยสตริงว่าง ตัวอย่างเช่น สูตรต่อไปนี้จะส่งกลับวันที่ของวันนี้เป็นสตริง
    =""& TODAY()

ฟังก์ชันต่อไปนี้ยังสามารถใช้เพื่อรับรองว่ามีการส่งกลับชนิดข้อมูลที่เฉพาะเจาะจง:

แปลงจํานวนจริงเป็นจํานวนเต็ม

สถานการณ์สมมติ: ค่าตามเงื่อนไขและการทดสอบข้อผิดพลาด

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

สร้างค่าตามเงื่อนไข

คุณสามารถใช้เงื่อนไข IF ที่ซ้อนกันเพื่อทดสอบค่าและสร้างค่าใหม่ตามเงื่อนไขได้ หัวข้อต่อไปนี้มีตัวอย่างง่ายๆ ของการประมวลผลตามเงื่อนไขและค่าตามเงื่อนไข:

ทดสอบข้อผิดพลาดภายในสูตร

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

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

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

สถานการณ์: การใช้ตัวแสดงเวลา

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

สําหรับรายการฟังก์ชันตัวแสดงเวลาทั้งหมด ให้ดูที่ ฟังก์ชันตัวแสดงเวลา (DAX) สําหรับเคล็ดลับเกี่ยวกับวิธีการใช้วันที่และเวลาอย่างมีประสิทธิภาพในการวิเคราะห์ Power Pivot ให้ดูที่ วันที่ใน Power Pivot

คํานวณยอดขายสะสม

หัวข้อต่อไปนี้มีตัวอย่างของวิธีการคํานวณยอดดุลปิดและยอดเปิด ตัวอย่างนี้ช่วยให้คุณสร้างยอดคงเหลือสะสมในช่วงเวลาต่างๆ เช่น วัน เดือน ไตรมาส หรือปี

เปรียบเทียบค่าตามช่วงเวลา

หัวข้อต่อไปนี้มีตัวอย่างของวิธีการเปรียบเทียบผลรวมในช่วงเวลาต่างๆ ช่วงเวลาเริ่มต้นที่ DAX สนับสนุนคือ เดือน ไตรมาส และปี

คํานวณค่าในช่วงวันที่แบบกําหนดเอง

ดูหัวข้อต่อไปนี้สําหรับตัวอย่างของวิธีการดึงข้อมูลช่วงวันที่แบบกําหนดเอง เช่น 15 วันแรกหลังจากเริ่มโปรโมชันการขาย

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

  • ฟังก์ชัน PARALLELPERIOD

    หมายเหตุ

    ถ้าคุณไม่จําเป็นต้องระบุช่วงวันที่แบบกําหนดเอง แต่กําลังทํางานกับหน่วยบัญชีมาตรฐาน เช่น เดือน ไตรมาส หรือปี เราขอแนะนําให้คุณคํานวณโดยใช้ฟังก์ชันตัวแสดงเวลาที่ออกแบบมาเพื่อจุดประสงค์นี้ เช่น TOTALQTD, TOTALMTD, TOTALQTD เป็นต้น

สถานการณ์: การจัดอันดับและการเปรียบเทียบค่า

เมื่อต้องการแสดงเฉพาะรายการจํานวน n อันดับแรกในคอลัมน์หรือ PivotTable คุณจะมีตัวเลือกมากมาย:

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

มีข้อดีและข้อเสียในแต่ละวิธี

  • ตัวกรอง Excel Top ใช้งานง่าย แต่ตัวกรองมีวัตถุประสงค์ในการแสดงผลเท่านั้น ถ้าข้อมูลพื้นฐาน PivotTable มีการเปลี่ยนแปลง คุณต้องรีเฟรช PivotTable ด้วยตนเองเพื่อดูการเปลี่ยนแปลง ถ้าคุณจําเป็นต้องทํางานกับการจัดอันดับแบบไดนามิก คุณสามารถใช้ DAX เพื่อสร้างสูตรที่เปรียบเทียบค่ากับค่าอื่นๆ ภายในคอลัมน์ได้
  • สูตร DAX มีประสิทธิภาพมากกว่า ยิ่งไปกว่านั้น โดยการเพิ่มค่าการจัดอันดับให้กับตัวแบ่งส่วนข้อมูล คุณเพียงแค่คลิกที่ตัวแบ่งส่วนข้อมูลเพื่อเปลี่ยนจํานวนค่าสูงสุดที่แสดง อย่างไรก็ตาม การคํานวณมีค่าใช้จ่ายสูง และวิธีนี้อาจไม่เหมาะสําหรับตารางที่มีแถวจํานวนมาก

แสดงเฉพาะสิบรายการแรกใน PivotTable

เมื่อต้องการแสดงค่าด้านบนหรือด้านล่างใน PivotTable
  1. ใน PivotTable ให้คลิกลูกศรลงในหัวเรื่องป้ายชื่อแถว
  2. เลือก ตัวกรอง>ค่า10 อันดับแรก
  3. ในกล่องโต้ตอบ ชื่อ<คอลัมน์>ตัวกรอง 10 อันดับแรก ให้เลือกคอลัมน์เพื่อจัดอันดับและจํานวนค่า ดังต่อไปนี้:
    1. เลือก บน เพื่อดู เซลล์ที่มีค่าสูงสุด หรือ ด้านล่าง เพื่อดูเซลล์ที่มีค่าต่ําสุด
    2. พิมพ์จํานวนค่าด้านบนหรืออันดับท้ายที่คุณต้องการดู ค่าเริ่มต้นคือ 10
    3. เลือกวิธีที่คุณต้องการให้ค่าแสดง ดังนี้
NameDescriptionItems เลือกตัวเลือกนี้เพื่อกรอง PivotTable เพื่อแสดงเฉพาะรายการของรายการที่อยู่ด้านบนหรืออันดับท้ายตามค่า เปอร์เซ็นต์เลือกตัวเลือกนี้เพื่อกรอง PivotTable เพื่อแสดงเฉพาะรายการที่รวมกันเป็นเปอร์เซ็นต์ที่ระบุ ผลรวมเลือกตัวเลือกนี้เพื่อแสดงผลรวมของค่าสําหรับรายการด้านบนหรือด้านล่าง
  1. เลือกคอลัมน์ที่มีค่าที่คุณต้องการจัดอันดับ
  2. คลิก ตกลง

สั่งซื้อรายการแบบไดนามิกโดยใช้สูตร

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