ใช้สูตรแผ่นงานแผนภูมิในงานนำเสนอด้วย C++
ภาพรวม
แผ่นงานแผนภูมิเป็นแหล่งข้อมูลสำหรับแผนภูมิในงานนำเสนอ มันเก็บชื่อประเภทและชุดข้อมูลพร้อมกับค่าตัวเลขที่แผนภูมิแสดง ใน Aspose.Slides แผ่นงานนี้สามารถเข้าถึงได้ผ่าน chart data workbook ซึ่งทำให้คุณสามารถทำงานกับข้อมูลแผนภูมิได้โดยใช้โค้ด
บทความนี้อธิบายวิธีใช้สูตรในแผ่นงานแผนภูมิเพื่อให้ค่าของเซลล์คำนวณและอัปเดตโดยอัตโนมัติโดยไม่ต้องใส่ด้วยตนเอง แสดงวิธีกำหนดสูตร ใช้การอ้างอิงแบบ A1‑style และ R1C1‑style รีคัลคูลสูตรใน workbook และทำงานกับค่าคงที่ ตัวดำเนินการ การอ้างอิงเซลล์ และฟังก์ชันที่กำหนดไว้ล่วงหน้าที่รองรับสำหรับแผ่นงานแผนภูมิในงานนำเสนอ
เกี่ยวกับสูตรสเปรดชีตแผนภูมิในงานนำเสนอ
สเปรดชีตแผนภูมิ (หรือแผ่นงานแผนภูมิ) ในงานนำเสนอเป็นแหล่งข้อมูลของแผนภูมิ สเปรดชีตแผนภูมิมีข้อมูลที่แสดงบนแผนภูมิในรูปแบบกราฟิก เมื่อคุณสร้างแผนภูมิใน PowerPoint แผ่นงานที่เชื่อมโยงกับแผนภูมินี้จะถูกสร้างโดยอัตโนมัติ แผ่นงานแผนภูมิกำหนดไว้สำหรับทุกประเภทของแผนภูมิ: แผนภูมิเส้น แผนภูมิบาร์ แผนภูมิซันเบิร์สท์ แผนภูมิวงกลม ฯลฯ เพื่อดูสเปรดชีตแผนภูมิใน PowerPoint ให้ดับเบิล‑คลิกที่แผนภูมิ:

สเปรดชีตแผนภูมิมีชื่อขององค์ประกอบแผนภูมิ (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