DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน

สูตร DAX (Data Analysis Expressions) A to Z ที่น่าสนใจ พร้อมวิธีใช้งาน ทั้งหมด 26 สูตร ได้แก่ ALL, BLANK, CALCULATE, DAY, EDATE, FILTER, GEOMEAN, HOUR, IF, CROSSJOIN, KEEPFILTERS, LASTDATE, MAXX, NEXTMONTH, OR, PREVIOUSMONTH, QUARTER, ROW, SWITCH, TREATAS, UNION, VALUES, WEEKDAY, XIRR, YEAR, SUMMARIZE
DAX Functions A to Z รวมสูตร 26 สูตร ที่น่าสนใจ พร้อมวิธีใช้งาน
ทักษะ (ระบุได้หลายทักษะ)

DAX Functions

DAX Functions A to Z  ที่น่าสนใจ พร้อมวิธีใช้งาน ทั้งหมด 26 สูตร

สิ่งสำคัญของการใช้งาน Power BI ที่ขาดไม่ได้และเป็นเรื่องสำคัญมาก ๆ อย่างหนึ่งนั้นคือ DAX (Data Analysis Expressions) ซึ่งจะมาช่วยคำนวณสรุปผลข้อมูลที่มี โดย DAX จะถูกไปใช้ในการคำนวณ 3 ส่วนหลัก ๆ ได้แก่

  • Measures - คำนวณแล้วได้ผลลัพธ์คำตอบ 1 ค่า
  • Calculated columns - สร้างการคำนวณให้เกิดคอลัมน์ใหม่
  • Calculated table - สร้างการคำนวณให้เกิดตารางใหม่


 

ฉะนั้นวันนี้ทางทีมงาน 9Expert นำเสนอ ฟังก์ชัน DAX A to Z จำนวน 26 สูตร ดังนี้

 

ฟังก์ชัน ALL

ส่งกลับค่าแถวทั้งหมดในตาราง table หรือค่าทั้งหมดในคอลัมน์ column โดยไม่คำนึงถึงตัวกรองใด ๆ ที่อาจใช้อยู่

รูปแบบของ Syntax

ALL([<table> | <column>[, <column>[, <column>[,…]]]])

table คือ ตารางที่ต้องการล้างตัวกรอง
column คือ คอลัมน์ที่ต้องการล้างตัวกรอง

 

การคืนค่า

ตารางหรือคอลัมน์ที่ตัวกรองถูกลบออก

รูปแบบและตัวอย่างการใช้ DAX ALL Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร ALL พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function ALL พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน BLANK

ส่งคืนค่าว่าง

รูปแบบของ Syntax

BLANK()

การคืนค่า

ว่าง

รูปแบบและตัวอย่างการใช้ DAX BLANK Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร BLANK พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function BLANK พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน CALCULATE

ประเมินค่าจาก expression หรือสูตร ภายใต้ชุดของ filter ที่กำหนด

รูปแบบของ Syntax

CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])

expression คือ เป็นชื่อ measure ที่มีสร้างอยู่แล้ว หรือสูตรที่เหมาะสม สำหรับการประเมิน
filter1, filter2 คือ Boolean expression หรือ ตัวกรองในรูปแบบตาราง หรือฟังก์ชันสำหรับปรับเปลี่ยนตัวกรอง (ไม่บังคับเป็นทางเลือก)

 

การคืนค่า

ค่าที่เป็นผลลัพธ์ของ expression

รูปแบบและตัวอย่างการใช้ DAX CALCULATE Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร CALCULATE พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function CALCULATE พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน DAY

แสดงค่าเลขวันที่ของเดือน (1 – 31) จากวันที่กำหนด

รูปแบบของ Syntax

DAY(<date>)

date คือ วันที่ในรูปแบบ วันที่เวลา หรือข้อความที่แสดงแทนของวันที่

 

การคืนค่า

จำนวนเต็มที่ระบุวันของเดือน

รูปแบบและตัวอย่างการใช้ DAX DATE Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร DAY พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function DAY พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน EDATE

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

รูปแบบของ Syntax

EDATE(<start_date>, <months>)

start_date คือ วันที่ในรูปแบบ วันที่เวลา หรือ ข้อความ ที่แสดงถึงวันที่เริ่มต้น
months คือ จำนวนเต็มที่แสดงถึงจำนวนเดือนก่อนหรือหลัง start_date

 

การคืนค่า

วันที่ (วันที่เวลา)

รูปแบบและตัวอย่างการใช้ DAX EDATE Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร EDATE พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function EDATE พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน FILTER

ส่งคืนตาราง table ที่ถูกกรอง filterexpression

รูปแบบของ Syntax

FILTER(<table>, <filterexpression>)

table คือ ตารางที่ต้องการกรอง
filterexpression คือ Boolean (True/False) expression สำหรับประเมินแต่ละแถวของตาราง

 

การคืนค่า

ตารางที่มีเฉพาะแถวที่กรองแล้วเท่านั้น

รูปแบบและตัวอย่างการใช้ DAX FILTER Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร FILTER พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function FILTER พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน GEOMEAN

แสดงค่าเฉลี่ยเรขาคณิตของตัวเลขในคอลัมน์ ซึ่งจะเหมาะกับการใช้แทนค่าเฉลี่ยเลขคณิตแบบปกติ สำหรับข้อมูลที่มีการกระจายค่าที่แตกต่างกันมาก

รูปแบบของ Syntax

GEOMEAN(<column>)

column คือ คอลัมน์ที่เป็นตัวเลขที่จะใช้คำนวณหาค่าเฉลี่ยเรขาคณิต

 

การคืนค่า

เลขทศนิยม 1 ค่า

 


 

รูปแบบและตัวอย่างการใช้ DAX GEOMEAN Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร GEOMEAN พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function GEOMEAN พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน HOUR

แสดงชั่วโมงเป็นตัวเลขตั้งแต่ 0 (12:00 A.M.) ถึง 23 (11:00 P.M.)

รูปแบบของ Syntax

HOUR(<datetime>)

datetime คือ ค่า วันที่เวลา เช่น 16:48:00 หรือ 4:48 PM

 

การคืนค่า

จำนวนเต็มจาก 0 ถึง 23

รูปแบบและตัวอย่างการใช้ DAX HOUR Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร HOUR พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function HOUR พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน IF

ตรวจสอบว่าตรงตามเงื่อนไขหรือไม่ และส่งคืนค่าหนึ่งค่าหากเป็น TRUE และอีกค่าหนึ่งหากเป็น FALSE

รูปแบบของ Syntax

IF(<logical_test>, <value_if_true>[, <value_if_false>])

logical_test คือ ค่าใด ๆ หรือ expression ที่สามารถประเมินค่าเป็น TRUE หรือ FALSE ได้
value_if_true คือ ค่าที่ส่งกลับถ้า logical_test เป็น TRUE
value_if_false คือ ค่าที่ส่งกลับถ้า logical_test เป็น FALSE ถ้าไม่ระบุ จะส่งกลับค่า BLANK (ไม่บังคับเป็นทางเลือก)

 

การคืนค่า

ค่าหนึ่งค่า อย่างใดอย่างหนึ่งระหว่าง value_if_true, value_if_false หรือ BLANK

รูปแบบและตัวอย่างการใช้ DAX IF Function
ศึกษาเพิ่มเติมวิธีการใช้สูตร IF พร้อมไฟล์ตัวอย่างการใช้งานฟรี ในบทความ DAX Function IF พร้อมตัวอย่างการใช้งาน
 

 

ฟังก์ชัน CROSSJOIN

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

รูปแบบของ Syntax

CROSSJOIN(<table>, <table>[, <table>]…)

table คือ ตาราง หรือ DAX expression ใด ๆ ที่แสดงผลเป็นตาราง ที่จะมาทำ CROSSJOIN

 

การคืนค่า

ตารางที่มีผลคูณคาร์ทีเซียนของแถวทั้งหมดจากตารางทั้งหมดในอาร์กิวเมนต์

รูปแบบและตัวอย่างการใช้ DAX CROSSJOIN Function

ฟังก์ชัน KEEPFILTERS

เปลี่ยนความหมายการกรอง ในฟังก์ชัน CALCULATE และ CALCULATABLE

รูปแบบของ Syntax

KEEPFILTERS(<expression>)

expression คือ expression ใด หรือ พวกตัวกรองต่าง ๆ

 

การคืนค่า

ตารางที่มีค่า ที่ต้องใช้ประกอบกับฟังก์ชัน CALCULATE หรือ CALCULATABLE

รูปแบบและตัวอย่างการใช้ DAX KEEPFILTER Function

ฟังก์ชัน LASTDATE

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

รูปแบบของ Syntax

LASTDATE(<dates>)

dates คือ คอลัมน์ที่เป็นวันที่

 

การคืนค่า

ตารางที่มีคอลัมน์เดียวและแถวเดียวที่มีค่าวันที่

รูปแบบและตัวอย่างการใช้ DAX LASTDATE Function

ฟังก์ชัน MAXX

ประเมิน expression สำหรับแต่ละแถวของตารางและส่งกลับค่าที่มากที่สุด

รูปแบบของ Syntax

MAXX(<table>,<expression>)

table คือ ตารางที่ให้มีการคำนวณ <expression> ในแต่ละแถวของตาราง
expression คือ expression ที่จะประเมินค่าสำหรับแต่ละแถวของตาราง

 

การคืนค่า

ค่าที่มากที่สุด 1 ค่า

รูปแบบและตัวอย่างการใช้ DAX MAXX Function

 

ฟังก์ชัน NEXTMONTH

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

รูปแบบของ Syntax

NEXTMONTH(<dates>)

dates คือ คอลัมน์ที่มีวันที่

 

การคืนค่า

ตารางที่มีค่าวันที่คอลัมน์เดียว

รูปแบบและตัวอย่างการใช้ DAX NEXTMONTH Function


ฟังก์ชัน OR

ตรวจเช็คและส่งกลับค่า TRUE ถ้าอาร์กิวเมนต์ใด ๆ เป็น TRUE และส่งกลับค่า FALSE ถ้าอาร์กิวเมนต์ทั้งหมดเป็น FALSE

รูปแบบของ Syntax

OR(<logical1>,<logical2>)

logical1, logical2 คือ ค่าเชิงตรรกะที่ต้องการทดสอบ

 

การคืนค่า

เป็น Boolean 1 ค่า โดยค่านี้จะเป็น TRUE ถ้าอาร์กิวเมนต์ใด ๆ ในสองรายการนี้เป็น TRUE ค่านี้จะเป็น FALSE ถ้าอาร์กิวเมนต์ทั้งสองรายการเป็น FALSE

รูปแบบและตัวอย่างการใช้ DAX OR Function

ฟังก์ชัน PREVIOUSMONTH

ส่งกลับตารางที่มีคอลัมน์ของวันที่ทั้งหมดในเดือนก่อนหน้า โดยยึดตามวันแรกในคอลัมน์วันที่ในบริบทปัจจุบัน

รูปแบบของ Syntax

PREVIOUSMONTH(<dates>)

dates คือ คอลัมน์ที่มีวันที่

 

การคืนค่า

ตารางที่มีค่าวันที่คอลัมน์เดียว

รูปแบบและตัวอย่างการใช้ DAX PREVIOUSMONTH Function

ฟังก์ชัน QUARTER

แสดงเลขไตรมาสเป็นตัวเลขตั้งแต่ 1 (มกราคม - มีนาคม) ถึง 4 (ตุลาคม - ธันวาคม)

รูปแบบของ Syntax

QUARTER(<date>)

date คือ ค่า วันที่

 

การคืนค่า

จำนวนเต็มตั้งแต่ 1 ถึง 4

รูปแบบและตัวอย่างการใช้ DAX QUARTER Function

ฟังก์ชัน ROW

ส่งกลับตารางที่มีแถวเดียว ที่มีค่าที่เป็นผลมาจาก expression ที่กำหนดให้แต่ละคอลัมน์

รูปแบบของ Syntax

ROW(<name>, <expression>[[,<name>, <expression>]…])

name คือ ชื่อที่กำหนดให้กับคอลัมน์ ซึ่งอยู่ใน double quotes
expression คือ DAX expression ใด ๆ ที่ส่งกลับค่าเพียงค่าเดียว

 

การคืนค่า

ตารางแถวเดียว

รูปแบบและตัวอย่างการใช้ DAX ROW Function

ฟังก์ชัน SWITCH

ประเมิน expression แล้วเทียบกับรายการ value และส่งกลับ result ที่เป็นไปได้หนึ่งในหลายรายการ

รูปแบบของ Syntax

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

expression คือ DAX expression ใด ๆ ที่แสดงเป็นค่าเดียว โดยจะมีการประเมิน expression หลายครั้ง (สำหรับแต่ละแถวหรือค่าคงที่)
value คือ ค่าคงที่ที่จะตรงกับผลลัพธ์ของ expression
result คือ ค่าหรือ expression ใด ๆ ที่จะได้ผลออกมา ถ้าผลลัพธ์ของ expression ตรงกับ value ที่สอดคล้องกัน
else คือ ค่าหรือ expression ใด ๆ ที่จะได้ผลออกมา ถ้าผลลัพธ์ของ expression ไม่ตรงกับอาร์กิวเมนต์ของ value

 

การคืนค่า

ค่าที่มาจากหนึ่งใน expression result ถ้าตรงกับ value หรือจาก expression else ถ้าไม่ตรงกับ value ใด ๆ

รูปแบบและตัวอย่างการใช้ DAX SWITCH Function

ฟังก์ชัน TREATAS

ใช้ผลลัพธ์ของ table_expression เป็นตัวกรองคอลัมน์จากตารางที่ไม่เชื่อมโยง (ไม่มี Relationship ระหว่างกัน)

รูปแบบของ Syntax

TREATAS(table_expression, <column>[, <column>[, <column>[,…]]])

table_expression คือ expression ที่ให้ผลลัพธ์เป็นตาราง
column คือ คอลัมน์ที่มีอยู่อย่างน้อยหนึ่งคอลัมน์ ที่ไม่ใช่รูปแบบ expression

 

การคืนค่า

ตารางที่มีแถวทั้งหมดในคอลัมน์ซึ่งยังอยู่ใน table_expression ด้วย

 


 

รูปแบบและตัวอย่างการใช้ DAX TREATAS Function

ฟังก์ชัน UNION

สร้างตาราง UNION (การรวม) จากคู่ของตาราง

รูปแบบของ Syntax

UNION(<table_expression1>, <table_expression2> [,<table_expression>[,…]])

table_expression คือ expression ใดที่ให้ผลลัพธ์เป็นตาราง

 

การคืนค่า

ตารางที่มีแถวทั้งหมดจาก table_expression แต่ละรายการ

รูปแบบและตัวอย่างการใช้ DAX UNION Function

ฟังก์ชัน VALUES

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

รูปแบบของ Syntax

VALUES(<TableNameOrColumnName>)

TableNameOrColumnName คือ ชื่อคอลัมน์ หรือชื่อตาราง

 

การคืนค่า

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

รูปแบบและตัวอย่างการใช้ DAX VALUES Function

ฟังก์ชัน WEEKDAY

แสดงตัวเลขตั้งแต่ 1 ถึง 7 หรือ 0 ถึง 6 ที่แสดงถึงวันของสัปดาห์ของวันที่ใด ๆ โดยค่าเริ่มต้น วันจะเริ่มต้นตั้งแต่ 1 (วันอาทิตย์) ถึง 7 (วันเสาร์)

รูปแบบของ Syntax

WEEKDAY(<date> [, <return_type>])

date คือ วันที่ในรูปแบบ วันที่เวลา
return_type คือ ตัวเลขกำหนดค่าที่แสดง
 

1 คือ เลข 1 (วันอาทิตย์) และสิ้นสุด เลข 7 (วันเสาร์) (ค่าตั้งต้น กรณีไม่ได้ระบุ)
2 คือ เลข 1 (วันจันทร์) และสิ้นสุด เลข 7 (วันอาทิตย์)
3 คือ เลข 0 (วันจันทร์) และสิ้นสุด เลข 6 (วันอาทิตย์)
11 คือ เลข 1 (วันจันทร์) และสิ้นสุด เลข 7 (วันอาทิตย์)
12 คือ เลข 1 (วันอังคาร) และสิ้นสุด เลข 7 (วันจันทร์)
13 คือ เลข 1 (วันพุธ) และสิ้นสุด เลข 7 (วันอังคาร)
14 คือ เลข 1 (วันพฤหัสบดี) และสิ้นสุด เลข 7 (วันพุธ)
15 คือ เลข 1 (วันศุกร์) และสิ้นสุด เลข 7 (วันพฤหัสบดี)
16 คือ เลข 1 (วันเสาร์) และสิ้นสุด เลข 7 (วันศุกร์)
17 คือ เลข 1 (วันอาทิตย์) และสิ้นสุด เลข 7 (วันเสาร์)


 

การคืนค่า

เลขจำนวนเต็มช่วงจาก 1 ถึง 7 หรือ 0 ถึง 6 ตามตัวเลือกพารามิเตอร์ return_type

รูปแบบและตัวอย่างการใช้ DAX WEEKDAY Function

ฟังก์ชัน XIRR

แสดงอัตราผลตอบแทนภายใน (IRR) สำหรับตารางกระแสเงินสดที่ไม่จำเป็นต้องเป็นงวด

รูปแบบของ Syntax

XIRR(<table>, <values>, <dates> [, <guess>])

table คือ ตารางที่มีข้อมูลเป็นแถวเพื่อประเมิน values และ dates
values คือ expression ที่แสดงเป็นค่ากระแสเงินสดสำหรับแต่ละแถวของตาราง
dates คือ expression ที่แสดงเป็นวันที่ของกระแสเงินสดสำหรับแต่ละแถวของตาราง
guess คือ การคาดเดาเบื้องต้นสำหรับอัตราผลตอบแทนภายใน (ค่าตั้งต้นหากไม่ได้ระบุ จะมีการใช้การคาดเดาค่าเริ่มต้นคือ 0.1)

 

การคืนค่า

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

รูปแบบและตัวอย่างการใช้ DAX XIRR Function

ฟังก์ชัน YEAR

ส่งกลับปีของวันที่เป็นจำนวนเต็มสี่หลักในช่วง 1900-9999

รูปแบบของ Syntax

YEAR(<date>)

date คือ วันที่ในรูปแบบ datetime หรือรูปแบบข้อความที่มีปีที่ต้องการค้นหา

 

การคืนค่า

จำนวนเต็มในช่วง 1900-9999

รูปแบบและตัวอย่างการใช้ DAX YEAR Function

ฟังก์ชัน SUMMARIZE

สร้างตารางสรุปผลที่จัดกลุ่มตามคอลัมน์ที่ระบุ

รูปแบบของ Syntax

SUMMARIZE(<table> [, <groupBy_columnName>][, <groupBy_columnName>]…[, <name>, <expression>]…)

table คือ expression DAX ใด ๆ ก็ตามที่คืนค่าเป็นตารางของข้อมูล
groupBy_columnName คือ ชื่อคอลัมน์ที่จะจัดกลุ่มที่ต้องการสรุปผล โดยไม่สามารถเป็น expression ได้ แต่สามารถเรียกใช้ฟังก์ชัน ROLLUP เพื่อระบุรายการคอลัมน์ที่จะจัดกลุ่มโดยให้มีผลรวมย่อยได้
name คือ ชื่อที่กำหนดให้กับคอลัมน์ผลรวมหรือข้อมูลสรุป ซึ่งอยู่ในในเครื่องหมาย double quotes " "
expression คือ expression DAX ใด ๆ ของคอลัมน์ใหม่ ที่แสดงผลค่าเดียว ซึ่งจะมีการประเมิน expression หลายครั้ง (ดำเนินการทั้งในบริบทแบบแถว และบริบทตัวกรอง)

 

การคืนค่า

ตารางที่มีคอลัมน์ที่เลือกสำหรับอาร์กิวเมนต์ groupBy_columnName และคอลัมน์สรุปที่ออกแบบโดยอาร์กิวเมนต์ name

 


 

รูปแบบและตัวอย่างการใช้ DAX SUMMARIZE Function


 

ข้อมูลอ้างอิงจากเว็บไซต์


 

แนะนำหลักสูตรการอบรม

เรียนรู้คำสั่ง DAX เพื่อใช้งานด้าน Data Analysis, Data Analytic, BI โดยใช้ Power BI
ในหลักสูตร Data Analysis Expression (DAX) for Power BI (2 Days)

 

และมีหลักสูตรการอบรมเกี่ยวกับ Power BI เพิ่มเติมดังนี้ :


 

หรือรูปแบบ Online ที่
Microsoft Power BI for Business Analytics (64 บทเรียน)