ใช้สูตรแผ่นงานแผนภูมิในงานนำเสนอด้วย C++

ภาพรวม

แผ่นงานแผนภูมิเป็นแหล่งข้อมูลสำหรับแผนภูมิในงานนำเสนอ มันเก็บชื่อประเภทและชุดข้อมูลพร้อมกับค่าตัวเลขที่แผนภูมิแสดง ใน Aspose.Slides แผ่นงานนี้สามารถเข้าถึงได้ผ่าน chart data workbook ซึ่งทำให้คุณสามารถทำงานกับข้อมูลแผนภูมิได้โดยใช้โค้ด

บทความนี้อธิบายวิธีใช้สูตรในแผ่นงานแผนภูมิเพื่อให้ค่าของเซลล์คำนวณและอัปเดตโดยอัตโนมัติโดยไม่ต้องใส่ด้วยตนเอง แสดงวิธีกำหนดสูตร ใช้การอ้างอิงแบบ A1‑style และ R1C1‑style รีคัลคูลสูตรใน workbook และทำงานกับค่าคงที่ ตัวดำเนินการ การอ้างอิงเซลล์ และฟังก์ชันที่กำหนดไว้ล่วงหน้าที่รองรับสำหรับแผ่นงานแผนภูมิในงานนำเสนอ

เกี่ยวกับสูตรสเปรดชีตแผนภูมิในงานนำเสนอ

สเปรดชีตแผนภูมิ (หรือแผ่นงานแผนภูมิ) ในงานนำเสนอเป็นแหล่งข้อมูลของแผนภูมิ สเปรดชีตแผนภูมิมีข้อมูลที่แสดงบนแผนภูมิในรูปแบบกราฟิก เมื่อคุณสร้างแผนภูมิใน PowerPoint แผ่นงานที่เชื่อมโยงกับแผนภูมินี้จะถูกสร้างโดยอัตโนมัติ แผ่นงานแผนภูมิกำหนดไว้สำหรับทุกประเภทของแผนภูมิ: แผนภูมิเส้น แผนภูมิบาร์ แผนภูมิซันเบิร์สท์ แผนภูมิวงกลม ฯลฯ เพื่อดูสเปรดชีตแผนภูมิใน PowerPoint ให้ดับเบิล‑คลิกที่แผนภูมิ:

todo:image_alt_text

สเปรดชีตแผนภูมิมีชื่อขององค์ประกอบแผนภูมิ (Category Name: Category1, Serie Name) และตารางข้อมูลตัวเลขที่สอดคล้องกับประเภทและชุดข้อมูลเหล่านี้ โดยค่าเริ่มต้นเมื่อคุณสร้างแผนภูมิใหม่ ข้อมูลสเปรดชีตแผนภูมิจะตั้งค่าด้วยข้อมูลเริ่มต้น จากนั้นคุณอาจเปลี่ยนแปลงข้อมูลสเปรดชีตในแผ่นงานด้วยตนเอง

โดยทั่วไปแผนภูมิมักแสดงข้อมูลที่ซับซ้อน (เช่น นักวิเคราะห์การเงิน นักวิเคราะห์เชิงวิทยาศาสตร์) ซึ่งมีเซลล์ที่คำนวณจากค่าของเซลล์อื่นหรือจากข้อมูลแบบไดนามิกอื่น ๆ การคำนวณค่าของเซลล์ด้วยตนเองและใส่ค่าโดยตรงทำให้การเปลี่ยนแปลงในอนาคตทำได้ยาก หากคุณเปลี่ยนค่าของเซลล์หนึ่ง เซลล์ที่ขึ้นกับค่านั้นทั้งหมดจะต้องอัปเดตด้วย นอกจากนี้ข้อมูลในตารางอาจขึ้นกับข้อมูลจากตารางอื่น สร้างแผนผังข้อมูลของงานนำเสนอที่ซับซ้อนและต้องอัปเดตอย่างง่ายและยืดหยุ่น

สูตรสเปรดชีตแผนภูมิ ในงานนำเสนอคือการแสดงออกเพื่อตัวคำนวณและอัปเดตข้อมูลสเปรดชีตแผนภูมิโดยอัตโนมัติ สูตรสเปรดชีตกำหนดตรรกะการคำนวณของเซลล์หรือกลุ่มเซลล์ สูตรสเปรดชีตอาจเป็นสูตรคณิตศาสตร์หรือสูตรตรรกะ ซึ่งใช้: การอ้างอิงเซลล์ ฟังก์ชันคณิตศาสตร์ ตัวดำเนินการตรรกะ ตัวดำเนินการคณิตศาสตร์ ฟังก์ชันการแปลง ค่าคงที่สตริง ฯลฯ นิยามของสูตรจะถูกเขียนลงในเซลล์และเซลล์นั้นจะไม่ถือค่าธรรมดา สูตรสเปรดชีตคำนวณค่าและคืนค่ากลับมา จากนั้นค่าที่ได้จะถูกกำหนดให้กับเซลล์ สูตรสเปรดชีตแผนภูมิในงานนำเสนอเป็นเหมือนสูตรของ Excel และรองรับฟังก์ชัน ตัวดำเนินการ และค่าคงที่เริ่มต้นเดียวกันสำหรับการใช้งาน

ใน Aspose.Slides สเปรดชีตแผนภูมิแสดงด้วยเมธอด ChartData::get_ChartDataWorkbook() ของประเภท IChartDataWorkbook สูตรสเปรดชีตสามารถกำหนดและเปลี่ยนแปลงได้ด้วยเมธอด IChartDataCell::set_Formula() ความสามารถต่อไปนี้รองรับสูตรใน Aspose.Slides:

  • ค่าคงที่ตรรกะ
  • ค่าคงที่ตัวเลข
  • ค่าคงที่สตริง
  • ค่าคงที่ข้อผิดพลาด
  • ตัวดำเนินการคณิตศาสตร์
  • ตัวดำเนินการเปรียบเทียบ
  • การอ้างอิงเซลล์แบบ A1‑style
  • การอ้างอิงเซลล์แบบ R1C1‑style
  • ฟังก์ชันที่กำหนดไว้ล่วงหน้า

โดยทั่วไปสเปรดชีตจะจัดเก็บค่าที่คำนวณจากสูตรล่าสุด หากหลังจากโหลดงานนำเสนอข้อมูลแผนภูมิไม่ได้ถูกเปลี่ยน – เมธอด IChartDataCell.get_Value() จะคืนค่าที่เก็บไว้ขณะอ่านข้อมูล แต่หากข้อมูลสเปรดชีตถูกแก้ไข ขณะอ่านเมธอด ChartDataCell.get_Value() จะโยน CellUnsupportedDataException สำหรับสูตรที่ไม่รองรับ เนื่องจากเมื่อสูตรถูกแยกวิเคราะห์สำเร็จ การพึ่งพาเซลล์จะถูกกำหนดและความถูกต้องของค่าล่าสุดจะได้รับการตรวจสอบ แต่หากสูตรไม่สามารถแยกวิเคราะห์ได้ ความถูกต้องของค่าที่เซลล์อาจไม่รับประกันได้

เพิ่มสูตรสเปรดชีตแผนภูมิในงานนำเสนอ

เริ่มต้นโดยเพิ่มแผนภูมิลงในสไลด์แรกของงานนำเสนอใหม่ด้วยเมธอด IShapeCollection::AddChart() แผ่นงานของแผนภูมิจะถูกสร้างโดยอัตโนมัติและสามารถเข้าถึงได้ด้วยเมธอด ChartData::get_ChartDataWorkbook():

auto presentation = System::MakeObject<Presentation>();
    
auto chart = presentation->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 150.0f, 150.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

// ...

ให้เขียนค่าบางอย่างในเซลล์ด้วยเมธอด IChartDataCell.set_Value() ของประเภท Object ซึ่งหมายความว่าคุณสามารถส่งค่าใด ๆ ให้เมธอดได้:

workbook->GetCell(0, u"F2")->set_Value(System::ObjectExt::Box<double>(-2.5));
workbook->GetCell(0, u"G3")->set_Value(System::ObjectExt::Box<double>(6.3));
workbook->GetCell(0, u"H4")->set_Value(System::ObjectExt::Box<int32_t>(3));

ต่อไปเพื่อเขียนสูตรลงในเซลล์ คุณสามารถใช้เมธอด IChartDataCell::set_Formula():

Note: เมธอด IChartDataCell::set_Formula() ใช้กำหนดการอ้างอิงเซลล์แบบ A1‑style

หากต้องการกำหนดการอ้างอิงเซลล์แบบ R1C1Formula ให้ใช้เมธอด IChartDataCell::set_R1C1Formula():

แล้วหากคุณอ่านค่าจากเซลล์ B2 และ C2 ค่านั้นจะถูกคำนวณ:

auto value1 = cell1->get_Value(); // 7.8
auto value2 = cell2->get_Value(); // 2.1

ค่าคงที่ตรรกะ

คุณสามารถใช้ค่าคงที่ตรรกะเช่น FALSE และ TRUE ในสูตรเซลล์ได้

ค่าคงที่ตัวเลข

สามารถใช้ตัวเลขในรูปแบบทั่วไปหรือรูปแบบวิทยาศาสตร์เพื่อสร้างสูตรสเปรดชีตแผนภูมิได้

ค่าคงที่สตริง

ค่าคงที่สตริง (หรือ literal) คือค่าที่ใช้ตามที่เป็นอยู่และจะไม่เปลี่ยนแปลง ค่าคงที่สตริงอาจเป็น: วันที่, ข้อความ, ตัวเลข ฯลฯ

ค่าคงที่ข้อผิดพลาด

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

  • #DIV/0! – สูตรพยายามหารด้วยศูนย์
  • #GETTING_DATA – อาจแสดงในเซลล์ขณะที่ค่ากำลังคำนวณ
  • #N/A – ข้อมูลหายหรือไม่พร้อมใช้งาน สาเหตุอาจเป็น: เซลล์ที่ใช้ในสูตรว่างเปล่า อักขระช่องว่างพิเศษ การสะกดผิด ฯลฯ
  • #NAME? – ไม่พบเซลล์หรือวัตถุสูตรตามชื่อ
  • #NULL! – เกิดจากข้อผิดพลาดในสูตร เช่น (,) หรืออักขระช่องว่างแทนเครื่องหมายโคลอน (:)
  • #NUM! – ตัวเลขในสูตรอาจไม่ถูกต้อง ยาวเกินไป หรือสั้นเกินไป ฯลฯ
  • #REF! – การอ้างอิงเซลล์ไม่ถูกต้อง
  • #VALUE! – ประเภทค่าที่ไม่คาดคิด เช่น ค่าแบบสตริงถูกกำหนดให้กับเซลล์ตัวเลข

ตัวดำเนินการคณิตศาสตร์

คุณสามารถใช้ตัวดำเนินการคณิตศาสตร์ทั้งหมดในสูตรแผ่นงานแผนภูมิได้:

ตัวดำเนินการ ความหมาย ตัวอย่าง
+ (บวก) การบวกหรือบวกเชิงบวกลบ 2 + 3
- (ลบ) การลบหรือการทำให้เป็นลบ -3 หรือ 2 - 3
* (คูณ) การคูณ 2 * 3
/ (หาร) การหาร 2 / 3
% (เปอร์เซ็นต์) เปอร์เซ็นต์ 30%
^ (ยกกำลัง) การยกกำลัง 2 ^ 3

Note: หากต้องการเปลี่ยนลำดับการประเมินผล ให้ใส่วงเล็บส่วนของสูตรที่ต้องคำนวณก่อน

ตัวดำเนินการเปรียบเทียบ

คุณสามารถเปรียบเทียบค่าของเซลล์ด้วยตัวดำเนินการเปรียบเทียบได้ เมื่อเปรียบเทียบสองค่า ผลลัพธ์จะเป็นค่าตรรกะ TRUE หรือ FALSE:

ตัวดำเนินการ ความหมาย ตัวอย่าง
= (เท่ากับ) เท่ากับ A2 = 3
<> (ไม่เท่ากับ) ไม่เท่ากับ A2 <> 3
> (มากกว่า) มากกว่า A2 > 3
>= (มากกว่าหรือเท่ากับ) มากกว่าหรือเท่ากับ A2 >= 3
< (น้อยกว่า) น้อยกว่า A2 < 3
<= (น้อยกว่าหรือเท่ากับ) น้อยกว่าหรือเท่ากับ A2 <= 3

การอ้างอิงเซลล์แบบ A1‑style

การอ้างอิงเซลล์แบบ A1‑style ใช้สำหรับแผ่นงานที่คอลัมน์มีตัวอักษรระบุ (เช่น “A") และแถวมีตัวเลขระบุ (เช่น “1") การอ้างอิงแบบ A1‑style สามารถใช้ได้ดังนี้:

การอ้างอิงเซลล์ ตัวอย่าง
แน่นอน สัมพัทธ์ ผสม
เซลล์ $A$2 A2

A$2

$A2

แถว $2:$2 2:2 -
คอลัมน์ $A:$A A:A -
ช่วง $A$2:$C$4 A2:C4

$A$2:C4

A$2:$C4

ตัวอย่างการใช้การอ้างอิงเซลล์แบบ A1‑style ในสูตร:

การอ้างอิงเซลล์แบบ R1C1‑style

การอ้างอิงเซลล์แบบ R1C1‑style ใช้สำหรับแผ่นงานที่ทั้งแถวและคอลัมน์ใช้ตัวเลขเป็นตัวระบุ การอ้างอิงแบบ R1C1‑style สามารถใช้ได้ดังนี้:

การอ้างอิงเซลล์ ตัวอย่าง
แน่นอน สัมพัทธ์ ผสม
เซลล์ R2C3 R[2]C[3] R2C[3]
R[2]C3
แถว R2 R[2] -
คอลัมน์ C3 C[3] -
ช่วง R2C3:R5C7 R[2]C[3]:R[5]C[7] R2C3:R[5]C[7]
R[2]C3:R5C[7]

ตัวอย่างการใช้การอ้างอิงเซลล์แบบ R1C1‑style ในสูตร:

ฟังก์ชันที่กำหนดไว้ล่วงหน้า

มีฟังก์ชันที่กำหนดไว้ล่วงหน้าที่สามารถใช้ในสูตรเพื่อทำให้การดำเนินการง่ายขึ้น ฟังก์ชันเหล่านี้สรุปการทำงานที่ใช้บ่อยเช่น:

  • ABS
  • AVERAGE
  • CEILING
  • CHOOSE
  • CONCAT
  • CONCATENATE
  • DATE (ระบบวันที่ 1900)
  • DAYS
  • FIND
  • FINDB
  • IF
  • INDEX (รูปแบบอ้างอิง)
  • LOOKUP (รูปแบบเวกเตอร์)
  • MATCH (รูปแบบเวกเตอร์)
  • MAX
  • SUM
  • VLOOKUP

คำถามที่พบบ่อย

ไฟล์ Excel ภายนอกรองรับเป็นแหล่งข้อมูลสำหรับแผนภูมิที่มีสูตรหรือไม่?

ใช่ Aspose.Slides รองรับ workbook ภายนอกเป็น chart’s data source ซึ่งทำให้คุณสามารถใช้สูตรจากไฟล์ XLSX ภายนอกได้

สูตรแผนภูมิสามารถอ้างอิงชีตภายใน workbook เดียวกันโดยใช้ชื่อชีตได้หรือไม่?

ใช่ สูตรปฏิบัติตามโมเดลการอ้างอิงของ Excel มาตรฐาน ดังนั้นคุณสามารถอ้างอิงชีตอื่นภายใน workbook เดียวกันหรือ workbook ภายนอกได้ สำหรับการอ้างอิงภายนอกให้รวมเส้นทางและชื่อ workbook โดยใช้ไวยากรณ์ของ Excel