# ใช้สูตร Worksheet ของแผนภูมิในงานนำเสนอด้วย JavaScript

> ใช้สูตรแบบ Excel ใน Aspose.Slides สำหรับ Node.js ผ่าน Worksheet ของแผนภูมิและอัตโนมัติรายงานในไฟล์ PPT และ PPTX ด้วย JavaScript.

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

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

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

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

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

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


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

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

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

ใน [**Aspose.Slides**](https://products.aspose.com/slides/th/nodejs-java/) สเปรดชีตของแผนภูมิแสดงด้วยเมธอด
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartData#getChartDataWorkbook--) ของประเภท
[**ChartDataWorkbook**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataWorkbook)  
สูตรสเปรดชีตสามารถกำหนดและเปลี่ยนแปลงได้ด้วยเมธอด
[**ChartDataCell.setFormula**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-)  
ฟังก์ชันที่รองรับสำหรับสูตรใน Aspose.Slides มีดังนี้:

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


โดยทั่วไปสเปรดชีตจะเก็บค่าที่คำนวณสูตรล่าสุดไว้ หากหลังจากโหลดงานนำเสนอแล้วข้อมูลแผนภูมิไม่ได้มีการเปลี่ยนแปลง – เมธอด
[**ChartDataCell.getValue**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#getValue--) จะคืนค่าที่เก็บไว้ระหว่างการอ่าน แต่หากข้อมูลสเปรดชีตมีการเปลี่ยนแปลง ระหว่างการอ่านคุณสมบัติ **ChartDataCell.Value** จะโยนข้อยกเว้น
[**CellUnsupportedDataException**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/CellUnsupportedDataException) สำหรับสูตรที่ไม่ได้รับการสนับสนุน เนื่องจากเมื่อสูตรถูกแยกวิเคราะห์สำเร็จ การพึ่งพาเซลล์จะถูกกำหนดและความถูกต้องของค่าล่าสุดจะถูกตรวจสอบ แต่หากสูตรไม่สามารถแยกวิเคราะห์ได้ ความถูกต้องของค่าที่เซลล์เก็บไว้ไม่สามารถรับประกันได้

## **เพิ่มสูตรสเปรดชีตของแผนภูมิไปยังงานนำเสนอ**
เริ่มแรกให้เพิ่มแผนภูมิลงในสไลด์แรกของงานนำเสนอใหม่ด้วยเมธอด
[ShapeCollection.getShapes.addChart](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ShapeCollection#addChart-int-float-float-float-float-)
Worksheet ของแผนภูมิจะถูกสร้างโดยอัตโนมัติและสามารถเข้าถึงได้ด้วยเมธอด
[**Chart.getChartData.getChartDataWorkbook**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartData#getChartDataWorkbook--) :

```javascript
var pres = new aspose.slides.Presentation();
try {
    var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 150, 150, 500, 300);
    var workbook = chart.getChartData().getChartDataWorkbook();
    // ...
} finally {
    if (pres != null) {
        pres.dispose();
    }
}
```

ให้เขียนค่าบางอย่างในเซลล์ด้วยคุณสมบัติ
[**ChartDataCell.setValue**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#setValue-java.lang.Object-) ของชนิด **Object** ซึ่งหมายความว่าคุณสามารถตั้งค่าใดก็ได้ให้กับคุณสมบัตินี้:

```javascript
workbook.getCell(0, "F2").setValue(-2.5);
workbook.getCell(0, "G3").setValue(6.3);
workbook.getCell(0, "H4").setValue(3);
```

ต่อไปเพื่อกำหนดสูตรให้กับเซลล์ คุณสามารถใช้เมธอด
[**ChartDataCell.setFormula**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-) :

*Note*: [**ChartDataCell.setFormula**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#setFormula-java.lang.String-) ใช้สำหรับกำหนดการอ้างอิงเซลล์แบบ A1.

เพื่อกำหนดการอ้างอิงเซลล์แบบ [R1C1Formula](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#getR1C1Formula--) คุณสามารถใช้เมธอด
[**ChartDataCell.setR1C1Formula**](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/ChartDataCell#setR1C1Formula-java.lang.String-) :

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

```javascript
var value1 = cell1.getValue();// 7.8
var value2 = cell2.getValue();// 2.1
```

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

```javascript
workbook.getCell(0, "A2").setValue(false);
var cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
var value = cell.getValue();// ค่ามีบูลีน "false"
```

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

```javascript
workbook.getCell(0, "A2").setFormula("1 + 0.5");
workbook.getCell(0, "B2").setFormula(".3 * 1E-2");
```

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

```javascript
workbook.getCell(0, "A2").setFormula("\"abc\"");
workbook.getCell(0, "B2").setFormula("\"2/3/2020 12:00\"");
```

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

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

```javascript
var cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
var value = cell.getValue();// ค่ามีสตริง "#DIV/0!"
```

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

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

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

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

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

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

|**การอ้างอิงเซลล์**|**ตัวอย่าง**|||
| :- | :- | :- | :- |
||**Absolute**|**Relative**|**Mixed**|
|Cell|$A$2|A2|<p>A$2</p><p>$A2</p>|
|Row|$2:$2|2:2|-|
|Column|$A:$A|A:A|-|
|Range|$A$2:$C$4|A2:C4|<p>$A$2:C4</p><p>A$2:$C4</p>|


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

```javascript
workbook.getCell(0, "A2").setFormula("C3 + SUM(F2:H5)");
```

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

|**การอ้างอิงเซลล์**|**ตัวอย่าง**|||
| :- | :- | :- | :- |
||**Absolute**|**Relative**|**Mixed**|
|Cell|R2C3|R[2]C[3]|R2C[3]<br>R[2]C3|
|Row|R2|R[2]|-|
|Column|C3|C[3]|-|
|Range|R2C3:R5C7|R[2]C[3]:R[5]C[7]|R2C3:R[5]C[7]<br>R[2]C3:R5C[7]|


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

```javascript
workbook.getCell(0, "A2").setR1C1Formula("R2C4 + SUM(R5C6:R7C9)");
```

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

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

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

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

ใช่ Aspose.Slides รองรับ workbook ภายนอกเป็น [แหล่งข้อมูลของแผนภูมิ](https://reference.aspose.com/slides/th/nodejs-java/aspose.slides/chartdatasourcetype/) ซึ่งทำให้คุณสามารถใช้สูตรจากไฟล์ XLSX ที่อยู่นอกงานนำเสนอได้

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

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