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

> ใช้สูตรสไตล์ Excel ใน Aspose.Slides สำหรับแผ่นงานแผนภูมิ C++ และทำให้รายงานอัตโนมัติในไฟล์ PPT และ PPTX

Source: https://docs.aspose.com/slides/th/cpp/chart-worksheet-formulas/
Updated: 2026-06-13

## **ภาพรวม**

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

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

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

![todo:image_alt_text](chart-worksheet-formulas_1.png)

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

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

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

ใน [**Aspose.Slides**](https://products.aspose.com/slides/th/cpp/) สเปรดชีตแผนภูมิแสดงด้วยเมธอด [**ChartData::get_ChartDataWorkbook()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.chart_data#a32097093561723a10df0a57dc91acaea) ของประเภท [**IChartDataWorkbook**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_workbook) สูตรสเปรดชีตสามารถกำหนดและเปลี่ยนแปลงได้ด้วยเมธอด [**IChartDataCell::set_Formula()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_cell#a6806c6a40e025e6834c4c5f3af3cf692) ความสามารถต่อไปนี้รองรับสูตรใน Aspose.Slides:

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

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

## **เพิ่มสูตรสเปรดชีตแผนภูมิในงานนำเสนอ**
เริ่มต้นโดยเพิ่มแผนภูมิลงในสไลด์แรกของงานนำเสนอใหม่ด้วยเมธอด [IShapeCollection::AddChart()](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.i_shape_collection#a2cd4d47fc5c536012ee15b3a69486374) แผ่นงานของแผนภูมิจะถูกสร้างโดยอัตโนมัติและสามารถเข้าถึงได้ด้วยเมธอด [**ChartData::get_ChartDataWorkbook()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.chart_data#a32097093561723a10df0a57dc91acaea):

``` cpp
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()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_cell#ad85809f520195e09225abae9002635ec) ของประเภท **Object** ซึ่งหมายความว่าคุณสามารถส่งค่าใด ๆ ให้เมธอดได้:

``` cpp
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()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_cell#a6806c6a40e025e6834c4c5f3af3cf692):

*Note*: เมธอด [**IChartDataCell::set_Formula()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_cell#a6806c6a40e025e6834c4c5f3af3cf692) ใช้กำหนดการอ้างอิงเซลล์แบบ A1‑style

หากต้องการกำหนดการอ้างอิงเซลล์แบบ R1C1Formula ให้ใช้เมธอด [**IChartDataCell::set_R1C1Formula()**](https://reference.aspose.com/slides/th/cpp/class/aspose.slides.charts.i_chart_data_cell#a47f5825dd38d0dddb11ecc3a43d388c7):

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

``` cpp
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|<p>A$2</p><p>$A2</p>|
|แถว|$2:$2|2:2|-|
|คอลัมน์|$A:$A|A:A|-|
|ช่วง|$A$2:$C$4|A2:C4|<p>$A$2:C4</p><p>A$2:$C4</p>|

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

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

|**การอ้างอิงเซลล์**|**ตัวอย่าง**| | |
| :- | :- | :- | :- |
| |แน่นอน|สัมพัทธ์|ผสม|
|เซลล์|R2C3|R[2]C[3]|R2C[3]<br>R[2]C3|
|แถว|R2|R[2]|-|
|คอลัมน์|C3|C[3]|-|
|ช่วง|R2C3:R5C7|R[2]C[3]:R[5]C[7]|R2C3:R[5]C[7]<br>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](https://reference.aspose.com/slides/th/cpp/aspose.slides.charts/chartdatasourcetype/) ซึ่งทำให้คุณสามารถใช้สูตรจากไฟล์ XLSX ภายนอกได้

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

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