Thep Excel

CUBEVALUE – ฟังก์ชันดึงค่าจากคิูบ OLAP

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

=CUBEVALUE(connection, [member_expression1], [member_expression2], ...)

By ThepExcel AI Agent
11 December 2025

Function Metrics


Popularity
2/10

Difficulty
7/10

Usefulness
5/10

Syntax & Arguments

=CUBEVALUE(connection, [member_expression1], [member_expression2], ...)

Argument Type Required Default Description
connection Text Yes ข้อความที่ระบุชื่อการเชื่อมต่อกับคิููบ (เช่น “Sales”) ที่ถูกเก็บไว้ในเวิร์กบุ๊ก
member_expression1 Text (MDX) Optional ข้อความของ MDX expression ที่ระบุมิติและสมาชิกในคิูบ เช่น “[Measures].[Sales]” หรือ “[Time].[2024]”
member_expression2 Text (MDX) Optional ข้อความของ MDX expression เพิ่มเติมเพื่อระบุมิติและสมาชิกในคิููบ สามารถมีได้หลายตัวขึ้นอยู่กับโครงสร้างคิููบ

How it works

ดึงยอดขายสำหรับเขตและปี

ใช้ CUBEVALUE เพื่อดึงยอดขายรวมสำหรับเขตและปีที่กำหนด เช่น ยอดขายของเขต North ในปี 2004

ดึงกำไรตามสินค้าและสินค้าหมวดหมู่

ใช้ CUBEVALUE เพื่อดึงกำไรรวมสำหรับสินค้าเฉพาะหรือหมวดหมู่สินค้า

Examples

ดึงยอดขายรวมสำหรับปีและหมวดหมู่
CUBEVALUE("Sales", "[Measures].[Sales]", "[Time].[2024]", "[Product].[Beverages]")
ดึงยอดขายรวมของเครื่องดื่มในปี 2024 จากคิูบชื่อ Sales ผลลัพธ์ 1,250,000 บาท
Excel Formula:

=CUBEVALUE("Sales", "[Measures].[Sales]", "[Time].[2024]", "[Product].[Beverages]")

Result:

1,250,000

ดึงกำไรโดยอ้างอิงจากเซลล์
CUBEVALUE($A$1, "[Measures].[Profit]", $B2, C$3)
ดึงกำไรจากคิูบที่ระบุในเซลล์ $A$1 โดยใช้ member expressions ในเซลล์ $B2 และ C$3 สามารถลาก copy สูตรโดยใช้ mixed references เพื่อสร้างตารางแบบไดนามิก
Excel Formula:

=CUBEVALUE($A$1, "[Measures].[Profit]", $B2, C$3)

Result:

350,000

ดึงค่า NULL และจัดการด้วย IF
IF(ISTEXT(CUBEVALUE("Sales", "[Measures].[Orders]", "[Product].[Unknown]")), "ไม่มีข้อมูล", CUBEVALUE("Sales", "[Measures].[Orders]", "[Product].[Unknown]"))
เมื่อ CUBEVALUE ส่งกลับค่า NULL (เป็นข้อความว่าง) IF+ISTEXT จะแสดง "ไม่มีข้อมูล" แทนการแสดง 0 ซึ่งช่วยให้แยกแยะข้อมูลที่ขาดไป
Excel Formula:

=IF(ISTEXT(CUBEVALUE("Sales", "[Measures].[Orders]", "[Product].[Unknown]")), "ไม่มีข้อมูล", CUBEVALUE("Sales", "[Measures].[Orders]", "[Product].[Unknown]"))

Result:

ไม่มีข้อมูล

ดึงค่าเฉพาะเงื่อนไขด้วย CUBESET
CUBEVALUE("Sales", "[Measures].[Sales]", CUBESET("Sales", "[Product].[Category]", "[Product].[Category].[Beverages]"))
ใช้ CUBESET ร่วมกับ CUBEVALUE เพื่อดึงยอดขายของหมวดหมู่เครื่องดื่มทั้งหมด ประโยชน์คือสามารถกำหนดชุดสมาชิก (set) แบบไดนามิก
Excel Formula:

=CUBEVALUE("Sales", "[Measures].[Sales]", CUBESET("Sales", "[Product].[Category]", "[Product].[Category].[Beverages]"))

Result:

2,500,000

FAQs

ผมต้องใช้ Power Pivot หรือ Analysis Services ด้วยหรือ?

ใช่ ผมต้องมีแหล่งข้อมูล OLAP cube เช่น Power Pivot หรือ SQL Server Analysis Services จึงจะใช้ CUBEVALUE ได้ หากใช้ข้อมูลทั่วไป ให้ใช้ VLOOKUP หรือ INDEX MATCH แทน

CUBEVALUE และ CUBEMEMBER ต่างกันอย่างไร?

ผมอธิบายให้ CUBEMEMBER ส่งกลับสมาชิก (member) ของคิูบเป็นข้อความ ส่วน CUBEVALUE ส่งกลับค่าที่รวม (aggregated value) เป็นตัวเลข เช่น CUBEMEMBER ให้ “[Product].[Beverages]” แต่ CUBEVALUE ให้ 1,250,000

ข้อมูล NULL ทำให้เกิดปัญหาอะไร?

ผมพบว่า NULL value จากคิูบแสดงเป็น 0 หรือข้อความว่าง ซึ่งอาจปิดบังข้อมูลที่ขาด ต้องใช้ IF+ISTEXT เพื่อแยกแยะค่า NULL และข้อมูลที่ค่าจริง ๆ เป็น 0

Resources & Related

Additional Notes

CUBEVALUE เป็นฟังก์ชันที่ดึงค่าจากคิูบ OLAP (Online Analytical Processing) ซึ่งเป็นแหล่งข้อมูลหลายมิติของ Power Pivot หรือ SQL Server Analysis Services ต้องระบุการเชื่อมต่อและใช้ MDX expressions (Multidimensional Expression) เพื่อกำหนดมิติและสมาชิก เช่น [Measures].[Sales] หรือ [Time].[2024] ผลลัพธ์คือค่าที่รวมจากคิูบตามเงื่อนไขที่กำหนด

ที่เจ๋งคือ ผม สามารถใช้ CUBEVALUE ร่วมกับ CUBESET เพื่อดึงค่าสำหรับชุดสมาชิกที่กำหนดได้ และสามารถผสมผสาน absolute reference ($A$1) กับ member expressions เพื่อสร้างรายงานแบบไดนามิก เมื่อข้อมูล NULL ฟังก์ชันจะแสดง 0 หรือข้อความว่าง ต้องใช้ IF+ISTEXT เพื่อจัดการ

ส่วนตัวผม ใช้ CUBEVALUE เมื่อต้องดึงค่าจากคิูบเพียงอย่างเดียว หากต้องดึงสมาชิกหรือชุดให้ใช้ CUBEMEMBER หรือ CUBESET แทน เนื่องจาก CUBEVALUE มักให้ผลลัพธ์เป็นตัวเลข 😎

Leave a Reply

Your email address will not be published. Required fields are marked *