ฟังก์ชัน CUBEVALUE

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel for iPad Excel Web App Excel for iPhone Excel สำหรับแท็บเล็ต Android Excel สำหรับโทรศัพท์ Android

บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน 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)