Thep Excel

CUBESETสร้างชุดข้อมูลจากคิูบ

CUBESET ส่งชุด MDX expression ไปยังเซิร์ฟเวอร์คิูบ แล้วส่งชุดข้อมูลกลับมาใช้กับฟังก์ชัน CUBE อื่นๆ เหมาะสำหรับงานวิเคราะห์ข้อมูล OLAP

fx
=CUBESET(connection, set_expression, [caption], [sort_order], [sort_by])

ความนิยม2/10
ความยาก7/10
ประโยชน์5/10

อัปเดต 11 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
connection text ข้อความที่ระบุชื่อของการเชื่อมต่อกับคิูบ ต้องตรงกับชื่อการเชื่อมต่อที่ตั้งไว้ใน Excel
set_expression text ข้อความ MDX set expression หรืออ้างอิงเซลล์ที่มีสมาชิก tuples หรือชุด เช่น ‘[Product].[Product].Children’ หรือ Order([Time].[Month].Members, [Measures].[Amount], DESC)
[caption]ไม่บังคับ text ข้อความที่จะแสดงในเซลล์แทนชื่อชุด ถ้าไม่ระบุจะแสดงค่าโดยปริยาย
[sort_order]ไม่บังคับ number ตัวเลข 0-6 ที่ระบุการเรียงลำดับ: 0=SortNone (ค่าปริยาย) 1=SortAscending 2=SortDescending 3=SortAlphaAscending 4=SortAlphaDescending 5=SortNaturalAscending 6=SortNaturalDescending
[sort_by]ไม่บังคับ text ข้อความที่ระบุค่าที่ใช้สำหรับการเรียงลำดับ จำเป็นต้องใช้เมื่อ sort_order เป็น 1 หรือ 2 เช่น ‘[Measures].[Sales Amount]’ หรือ ‘[Measures].[Quantity]’

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

CUBESET สร้างชุด (set) ของสมาชิกจากคิูบโดยส่งนิพจน์ MDX (Multidimensional Expression) ไปยังเซิร์ฟเวอร์ เซิร์ฟเวอร์จะประมวลผลแล้วส่งชุดข้อมูลกลับ Excel เพื่อให้คุณใช้งานต่อไป ฟังก์ชันนี้รองรับการเรียงลำดับแบบต่างๆ เช่น Ascending, Descending, Alphabetic และสามารถใช้เป็น input ให้กับฟังก์ชัน CUBE ตัวอื่นๆ เช่น CUBERANKEDMEMBER หรือ CUBESETCOUNT

ที่เจ๋งคือ CUBESET ทำให้คุณสามารถสร้างชุดข้อมูลที่ซับซ้อนจาก OLAP Cube ได้อย่างอิสระ โดยไม่ต้องตกติดเฉพาะที่ข้อมูลเท่านั้น คุณสามารถจัดเรียง ฟิลเตอร์ หรือสร้างชุดแบบไดนามิก ได้ตามต้องการ เฉพาะที่เซิร์ฟเวอร์ OLAP ของคุณรองรับ MDX

ส่วนตัวผม พบว่า CUBESET มีประโยชน์มากเวลาทำงาน Data Analysis กับ SQL Server Analysis Services หรือ Azure Analysis Services แต่ต้องเข้าใจ MDX Expression ก่อนถึงจะใช้ได้คล่อง ซึ่งบางครั้งค่อนข้างถึกหน่อยครับ 😅

How it works

สร้างชุดประเภทสินค้า

ใช้ CUBESET เพื่อสร้างชุดของประเภทสินค้าทั้งหมดจากคิูบ

เรียงลำดับสินค้าตามยอดขาย

ใช้ CUBESET กับ sort_order=1 และ sort_by='[Measures].[Sales Amount]' เพื่อสร้างชุดสินค้าเรียงลำดับจากยอดขายมากไปน้อย

Examples

ตัวอย่างที่ 1: สร้างชุดประเภทสินค้าCUBESET("Finance", "[Product].[Product].[All].Children", "Products")

สูตรนี้ส่ง MDX expression '[Product].[Product].[All].Children' ไปยังเซิร์ฟเวอร์ เพื่อดึงลูก (children) ทั้งหมดจากระดับ All ของมิติ Product และแสดงข้อความ 'Products' ในเซลล์ แทนที่จะแสดงโค้ด MDX เบื้องต้น

fx
=CUBESET("Finance", "[Product].[Product].[All].Children", "Products")

ผลลัพธ์ชุดของประเภทสินค้าทั้งหมดจากมิติ Product
ตัวอย่างที่ 2: เรียงสินค้าตามยอดขายจากน้อยไปมากCUBESET("Sales", "[Product].[All Products].Children", "Products by Sales", 1, "[Measures].[Sales Amount]")

sort_order=1 หมายถึง SortAscending จำเป็นต้องระบุ sort_by เป็น '[Measures].[Sales Amount]' เพื่อให้ระบบรู้ว่าจะเรียงตามค่าไหน แล้วลำดับทั้งหมดจะอัปเดตอัตโนมัติเมื่อข้อมูลในคิูบเปลี่ยน

fx
=CUBESET("Sales", "[Product].[All Products].Children", "Products by Sales", 1, "[Measures].[Sales Amount]")

ผลลัพธ์ชุดของสินค้าเรียงลำดับจากน้อยไปมาก (Ascending) ตามยอดขาย
ตัวอย่างที่ 3: ใช้ Order() ใน MDX ExpressionCUBESET("Finance", "Order([Time].[Month].Members, [Measures].[Amount], DESC)", "Months Sorted")

เมื่อ MDX expression มี Order() function อยู่แล้ว คุณสามารถปล่อย sort_order=0 (SortNone) ไว้ได้ เพราะการเรียงลำดับถูกกำหนดในนิพจน์ MDX เอง วิธีนี้ประหยัดและเป็นมาตรฐาน

fx
=CUBESET("Finance", "Order([Time].[Month].Members, [Measures].[Amount], DESC)", "Months Sorted")

ผลลัพธ์ชุดของเดือนเรียงลำดับตามจำนวนจากมากไปน้อย
ตัวอย่างที่ 4: อ้างอิง CUBESET กับ CUBESETCOUNTCUBESETCOUNT(CUBESET("Sales", "[Customer].[Customer Country].Members"))

CUBESET ส่งกลับชุดของประเทศ แล้ว CUBESETCOUNT นับจำนวนสมาชิกในชุดนั้น วิธีการผสม CUBE functions เหล่านี้ช่วยให้คุณสร้างรายงาน Dynamic ได้ง่าย

fx
=CUBESETCOUNT(CUBESET("Sales", "[Customer].[Customer Country].Members"))

ผลลัพธ์ตัวเลขจำนวนประเทศทั้งหมดในข้อมูลลูกค้า

FAQs

sort_order และ sort_by ต่างกันอย่างไร?+

sort_order ระบุ 'วิธีการ' เรียงลำดับ เช่น Ascending หรือ Descending ส่วน sort_by ระบุ 'ค่าไหน' ที่ใช้สำหรับเรียง เช่น [Measures].[Sales Amount] ซึ่ง sort_by จำเป็นต้องใช้เมื่อ sort_order เป็น 1 (Ascending) หรือ 2 (Descending) เท่านั้น ถ้า sort_order=0 ไม่ต้องใส่ sort_by

Set_expression ต้องมีรูปแบบอะไร?+

Set_expression ต้องเป็นนิพจน์ MDX (Multidimensional Expression) ที่ส่งกลับชุด เช่น [Product].Children (สมาชิกลูก) [Product].Members (สมาชิกทั้งหมด) หรือใช้ function เช่น Order() CrossJoin() Filter() ฯลฯ หรือคุณอ้างอิงเซลล์ที่มีตัวแปรชุด MDX ถ้า expression ยาวกว่า 255 ตัวอักษร ต้องเก็บไว้ในเซลล์แล้วอ้างอิงแทน

CUBESET ต่างจาก CUBEMEMBER อย่างไร?+

CUBEMEMBER ส่งกลับ 'สมาชิกตัวเดียว' (single member) จากคิูบ ส่วน CUBESET ส่งกลับ 'ชุดของสมาชิก' (set of multiple members) ที่สามารถใช้เป็น input ให้กับฟังก์ชัน CUBE อื่นๆ เช่น CUBESETCOUNT CUBERANKEDMEMBER ได้ ถ้าต้องการค่าตัวเดียว ใช้ CUBEMEMBER แต่ถ้าต้องการหลายค่า ใช้ CUBESET

ทำไม CUBESET แสดง #GETTING_DATA…?+

ข้อความ '#GETTING_DATA…' บอกว่า Excel กำลังรออยู่ว่าเซิร์ฟเวอร์คิูบจะประมวลผลและส่งข้อมูลกลับมา นี่เป็นสิ่งปกติครับ โดยเฉพาะเมื่อ set_expression มีความซับซ้อน หรือปริมาณข้อมูลเยอะ บางครั้งต้องรอไป 30 วินาที ถ้ารออีก ลองเช็คการเชื่อมต่อกับเซิร์ฟเวอร์

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ CUBESET จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้CUBESETCube
Cube (6)
CUBEKPIMEMBER

CUBEKPIMEMBER ดึงข้อมูลตัวบ่งชี้ KPI จากคิวบ์ OLAP และส่งกลับค่าจริง เป้าหมาย สถานะ หรือแนวโน้ม ใช้เชื่อมต่อกับ SQL Server Analysis Services เพื่อวิเคราะห์ผลการดำเนินงานองค์กร

CUBEMEMBER

CUBEMEMBER ส่งกลับสมาชิกหรือ tuple จากคิวบ์ OLAP โดยใช้ MDX expression เพื่อระบุตำแหน่ง ใช้สำหรับตรวจสอบความมีตัวตนของสมาชิกและสร้าง tuple สำหรับ cube function อื่น

CUBEMEMBERPROPERTY

CUBEMEMBERPROPERTY ดึงค่าของคุณสมบัติสมาชิก (property) จากสมาชิกในคิูบ OLAP โดยต้องระบุชื่อการเชื่อมต่อ MDX expression และชื่อคุณสมบัติที่ต้องการเข้าถึง

CUBERANKEDMEMBER

CUBERANKEDMEMBER ส่งกลับสมาชิกที่อยู่ในตำแหน่งอันดับที่ระบุจากชุด ใช้หาข้อมูลอันดับ 1, 2, 3 หรืออื่น ๆ จากคิวบ์

CUBESETCOUNT

CUBESETCOUNT นับจำนวนรายการในชุดที่สร้างจาก CUBESET ฟังก์ชันนี้ใช้ประกอบกับการทำงานของ OLAP เพื่อนับสมาชิกในชุดข้อมูล

CUBEVALUE

CUBEVALUE ดึงค่าที่รวม (aggregated value) จากคิูบ OLAP ผ่านการเชื่อมต่อ Power Pivot ใช้กำหนดมิติและสมาชิกเพื่อได้ยอดขาย กำไร หรือตัวชี้วัดอื่นจากคิูบ

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่