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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

```java
Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 150, 150, 500, 300);

    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();

    // ...
} finally {
    if (pres != null) pres.dispose();
}
```

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

```java
workbook.getCell(0, "F2").setValue(-2.5);

workbook.getCell(0, "G3").setValue(6.3);

workbook.getCell(0, "H4").setValue(3);
```

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

*หมายเหตุ*: เมธอด [**IChartDataCell.setFormula**](https://reference.aspose.com/slides/th/java/com.aspose.slides/IChartDataCell#setFormula-java.lang.String-) ใช้เพื่อกำหนดการอ้างอิงเซลล์แบบ A1.

หากต้องการกำหนดการอ้างอิงเซลล์แบบ [R1C1Formula](https://reference.aspose.com/slides/th/java/com.aspose.slides/IChartDataCell#getR1C1Formula--) ให้ใช้เมธอด
[**IChartDataCell.setR1C1Formula**](https://reference.aspose.com/slides/th/java/com.aspose.slides/IChartDataCell#setR1C1Formula-java.lang.String-):

จากนั้นหากคุณอ่านค่าจากเซลล์ B2 และ C2 จะได้รับการคำนวณ:

```java
Object value1 = cell1.getValue(); // 7.8

Object value2 = cell2.getValue(); // 2.1
```

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

```java
workbook.getCell(0, "A2").setValue(false);
IChartDataCell cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
Object value = cell.getValue(); // ค่าที่ได้เป็นบูลีน "false"
```

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

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

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

```java
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! - ประเภทค่าที่ไม่คาดคิด ตัวอย่างเช่น ค่าสตริงถูกตั้งให้กับเซลล์ประเภทตัวเลข

```java
IChartDataCell cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
Object value = cell.getValue(); // ค่าที่ได้เป็นสตริง "#DIV/0!"
```

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

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

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

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

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

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

|**การอ้างอิงเซลล์**|**ตัวอย่าง**|||
| :- | :- | :- | :- |
||ค่าสัมบูรณ์|สัมพัทธ์|ผสม|
|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 ในสูตร:

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

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

|**การอ้างอิงเซลล์**|**ตัวอย่าง**|||
| :- | :- | :- | :- |
||ค่าสัมบูรณ์|สัมพัทธ์|ผสม|
|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 ในสูตร:

```java
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 ภายนอกเป็น [chart's data source](https://reference.aspose.com/slides/th/java/com.aspose.slides/chartdatasourcetype/) ซึ่งช่วยให้คุณใช้สูตรจากไฟล์ XLSX ภายนอกงานนำเสนอได้

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

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