บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน CUBEVALUE ใน Microsoft Excel
คำอธิบาย
ส่งกลับค่าการรวมจากคิวบ์
ไวยากรณ์
CUBEVALUE(connection, [member_expression1], [member_expression2], …)
ไวยากรณ์ของฟังก์ชัน CUBEVALUE มีอาร์กิวเมนต์ดังต่อไปนี้
-
การเชื่อมต่อ จำเป็น สตริงข้อความของชื่อการเชื่อมต่อกับคิวบ์
-
Member_expression ไม่จำเป็น สตริงข้อความของนิพจน์หลายมิติ (MDX) ที่ประเมินเป็นสมาชิกหรือทูเปิลภายในคิวบ์ อีกวิธีหนึ่งคือ member_expression สามารถเป็นชุดที่กําหนดด้วยฟังก์ชัน CUBESET ใช้ member_expression เป็นตัวแบ่งส่วนข้อมูลเพื่อกําหนดส่วนของคิวบ์ที่จะส่งกลับค่ารวม ถ้าไม่ได้ระบุการวัดใน member_expression จะมีการใช้หน่วยวัดเริ่มต้นสําหรับคิวบ์นั้น
ข้อสังเกต
-
เมื่อฟังก์ชัน CUBEVALUE ประเมินค่า ฟังก์ชันจะแสดงข้อความ "#GETTING_DATA…" ในเซลล์ชั่วคราวก่อนที่จะได้รับข้อมูลทั้งหมด
-
ถ้าใช้การอ้างอิงเซลล์สำหรับ member_expression และการอ้างอิงเซลล์นั้นมีฟังก์ชัน CUBE อยู่ member_expression จะใช้นิพจน์ MDX สำหรับรายการในเซลล์ที่อ้างอิง ไม่ใช่ค่าที่แสดงในเซลล์ที่อ้างอิงนั้น
-
ถ้าชื่อการเชื่อมต่อไม่ใช่การเชื่อมต่อสมุดงานที่ถูกต้องที่ถูกจัดเก็บไว้ในสมุดงาน CUBEVALUE จะส่งกลับ #NAME หรือไม่? เป็นค่าความผิดพลาด ถ้าเซิร์ฟเวอร์ Online Analytical Processing (OLAP) ไม่ได้ทํางานอยู่ ไม่พร้อมใช้งาน หรือส่งกลับข้อความแสดงข้อผิดพลาด CUBEVALUE จะส่งกลับ #NAME หรือไม่ เป็นค่าความผิดพลาด
-
ถ้ามีองค์ประกอบใดเพียงหนึ่งองค์ประกอบภายในทูเปิลไม่ถูกต้อง CUBEVALUE จะส่งกลับ #VALUE! เป็นค่าความผิดพลาด
-
CUBEVALUE จะส่งกลับค่าความผิดพลาด #N/A ในกรณีดังนี้
-
ไวยากรณ์ member_expression ไม่ถูกต้อง
-
สมาชิกที่ระบุโดย member_expression ไม่มีอยู่ในคิวบ์
-
ทูเปิลไม่ถูกต้องเนื่องจากไม่มีจุดตัดสําหรับค่าที่ระบุ (ซึ่งอาจเกิดขึ้นกับหลายองค์ประกอบจากลําดับชั้นเดียวกัน)
-
ชุดมีสมาชิกอย่างน้อยหนึ่งสมาชิกที่มีมิติแตกต่างจากสมาชิกอื่น
-
CUBEVALUE อาจส่งกลับค่าความผิดพลาด #N/A ถ้าคุณอ้างอิงวัตถุที่ยึดตามเซสชัน เช่น สมาชิกจากการคํานวณหรือชุดที่มีชื่อใน PivotTable เมื่อใช้การเชื่อมต่อร่วมกัน และ PivotTable นั้นถูกลบหรือคุณแปลง PivotTable นั้นเป็นสูตร (บนแท็บ ตัวเลือก ในกลุ่ม เครื่องมือ ให้คลิก เครื่องมือ OLAP แล้วคลิก แปลงเป็นสูตร)
-
ปัญหา: ค่า Null จะถูกแปลงเป็นสตริงที่มีความยาวเป็นศูนย์
ใน Excel ถ้าเซลล์ไม่มีข้อมูลเนื่องจากคุณไม่เคยเปลี่ยนแปลงหรือลบเนื้อหา เซลล์จะมีค่าว่าง ในระบบฐานข้อมูลจํานวนมาก ค่าว่างจะเรียกว่าค่า Null ค่าว่างหรือ Null หมายถึง "ไม่มีค่า" อย่างไรก็ตาม สูตรไม่สามารถส่งกลับสตริงว่างหรือค่า Null ได้ สูตรจะส่งกลับค่าใดค่าหนึ่งในสามค่า: ค่าตัวเลข เสมอ ค่าข้อความ ซึ่งอาจเป็นสตริงที่มีความยาวเป็นศูนย์ หรือเป็นค่าความผิดพลาด เช่น #NUM! หรือ #VALUE
ถ้าสูตรมีฟังก์ชัน CUBEVALUE ที่เชื่อมต่อกับฐานข้อมูล Online Analytical Processing (OLAP) และคิวรีไปยังฐานข้อมูลนี้ให้ผลลัพธ์เป็นค่า Null Excel จะแปลงค่า Null เป็นสตริงที่มีความยาวเป็นศูนย์ แม้ว่าสูตรจะส่งกลับค่าตัวเลขก็ตาม ซึ่งอาจนําไปสู่สถานการณ์ที่ช่วงของเซลล์มีค่าสตริงตัวเลขและความยาวเป็นศูนย์รวมกัน และสถานการณ์นี้อาจส่งผลต่อผลลัพธ์ของสูตรอื่นๆ ที่อ้างอิงช่วงของเซลล์นั้น ตัวอย่างเช่น ถ้า A1 และ A3 มีตัวเลข และ A2 มีสูตรที่มีฟังก์ชัน CUBEVALUE ที่ส่งกลับสตริงที่มีความยาวเป็นศูนย์ สูตรต่อไปนี้จะส่งกลับ #VALUE! ข้อ ผิด พลาด:
=A1+A2+A3
เมื่อต้องการป้องกันสิ่งนี้ คุณสามารถทดสอบสตริงที่มีความยาวเป็นศูนย์ได้โดยใช้ฟังก์ชัน ISTEXT และโดยใช้ฟังก์ชัน IF เพื่อแทนที่ความยาวที่เป็นศูนย์ด้วย 0 (ศูนย์) ดังที่ตัวอย่างต่อไปนี้แสดง
=IF(ISTEXT(A1),0,A1)+IF(ISTEXT(A2),0,A2)+IF(ISTEXT(A3),0,A3)
หรืออีกทางหนึ่ง คุณสามารถซ้อนฟังก์ชัน CUBEVALUE ในเงื่อนไข IF ที่ส่งกลับค่า 0 ได้ ถ้าฟังก์ชัน CUBEVALUE ประเมินเป็นสตริงที่มีความยาวเป็นศูนย์ดังที่ตัวอย่างต่อไปนี้แสดง
=IF (CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")="", 0, CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]"))
โปรดสังเกตว่าฟังก์ชัน SUM ไม่ต้องการการทดสอบนี้สำหรับสตริงที่มีความยาวเป็นศูนย์ เนื่องจากฟังก์ชันจะละเว้นสตริงที่มีความยาวเป็นศูนย์โดยอัตโนมัติเมื่อคำนวณค่าส่งกลับของฟังก์ชัน
ตัวอย่าง
=CUBEVALUE("Sales","[Measures].[Profit]","[Time].[2004]","[All Product].[Beverages]")
=CUBEVALUE($A$1,"[Measures].[Profit]",D$12,$A23)
=CUBEVALUE("Sales",$B$7,D$12,$A23)