Thep Excel

PIVOTBYสร้าง Pivot Table ด้วยสูตร Dynamic Array

PIVOTBY เป็นฟังก์ชัน Excel 365 ที่สร้าง Pivot Table แบบไดนามิก โดยกำหนด Row Fields, Column Fields และ Values ผ่านสูตร พร้อมตั้งค่าการแสดงผลรวมและการเรียงลำดับได้ทันที

fx
=PIVOTBY(row_fields, col_fields, values, function, [field_headers], [row_total_depth], [row_sort_order], [col_total_depth], [col_sort_order], [filter_array])

ความนิยม5/10
ความยาก4/10
ประโยชน์6/10

อัปเดต 30 November 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
row_fields Range คอลัมน์ที่ต้องการนำมาเป็นแถว (Row Labels) – แต่ละค่าที่แตกต่างกันจะแสดงเป็นแถวหนึ่ง
col_fields Range คอลัมน์ที่ต้องการนำมาเป็นหัวคอลัมน์ (Column Labels) – แต่ละค่าที่แตกต่างกันจะแสดงเป็นคอลัมน์หนึ่ง
values Range ข้อมูลตัวเลขที่ต้องการนำมาคำนวณ (Values to aggregate) – ต้องเป็นตัวเลขเสมอ
function Function or Array ฟังก์ชันสรุปผล เช่น SUM, AVERAGE, COUNT, MAX, MIN, PRODUCT หรือ HSTACK เพื่อใช้หลายฟังก์ชัน
[field_headers]ไม่บังคับ Logical TRUE เพื่อแสดงชื่อคอลัมน์ตัวแรก FALSE เพื่อซ่อน (ค่าเริ่มต้น: FALSE)
[row_total_depth]ไม่บังคับ Number ความลึกของการแสดง Row Totals: 0=ไม่แสดง -1=ทั้งหมด 1,2,3=ระดับนั้นๆ (ค่าเริ่มต้น: -1)
[row_sort_order]ไม่บังคับ Number ลำดับการเรียง Row: 1=เรียงเหมือน source data -1=เรียงตัวเลขจากมากไปน้อย 2=เรียง A-Z (ค่าเริ่มต้น: 1)
[col_total_depth]ไม่บังคับ Number ความลึกของการแสดง Column Totals: 0=ไม่แสดง -1=ทั้งหมด 1,2,3=ระดับนั้นๆ (ค่าเริ่มต้น: -1)
[col_sort_order]ไม่บังคับ Number ลำดับการเรียง Column: 1=เรียงเหมือน source data -1=เรียงตัวเลขจากมากไปน้อย 2=เรียง A-Z (ค่าเริ่มต้น: 1)
[filter_array]ไม่บังคับ Array อาเรย์เพื่อกรองข้อมูล เช่นมาจาก FILTER function (ค่าเริ่มต้น: ใช้ทั้งหมด)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

PIVOTBY คือเครื่องมือเพื่อสร้าง Pivot Table โดยใช้สูตรเพียงบรรทัดเดียว คุณเลือกคอลัมน์ไหนเป็น Row Labels, คอลัมน์ไหนเป็น Column Headers, ข้อมูลตัวเลขไหนจะนำมาคำนวณ และเลือกฟังก์ชันสรุป (SUM, AVERAGE, COUNT, MAX, MIN ฯลฯ) ก็เสร็จ

ที่เจ๋งคือ PIVOTBY สร้าง Pivot Table แบบไดนามิก ซึ่งหมายความว่าเมื่อข้อมูลต้นทางเปลี่ยน PIVOTBY จะอัปเดตผลลัพธ์โดยอัตโนมัติ ไม่ต้องสร้าง Pivot Table ใหม่ซ้ำแล้วซ้ำเล่า นอกจากนี้ยังสามารถปรับแต่งการแสดงผลรวมแต่ละระดับ (Totals Depth) และการเรียงลำดับได้อย่างอิสระ

ส่วนตัวผม PIVOTBY เป็นฟังก์ชันที่ออกแบบมาเพื่อผู้ชอบทำงานด้วยสูตรมากกว่าการใช้เมนู เพราะมันให้ความยืดหยุ่นและความแม่นยำสูง ผมใช้ PIVOTBY ในรายงานที่ต้องอัปเดตบ่อยๆ หรือเมื่อต้องเชื่อม Dynamic Array ฟังก์ชันอื่นๆ เข้าด้วยกัน อย่างเช่น FILTER ก็ได้ครับ

How it works

สรุปยอดขายรายภาคและสินค้า

ดูยอดขายแยกตามภาค (Rows) และประเภทสินค้า (Columns) ในตารางเดียว

รายงานสรุปรายเดือนและรายปี

เปรียบเทียบข้อมูลรายเดือน (Rows) ของแต่ละปี (Columns)

วิเคราะห์คะแนนสอบ

ดูคะแนนเฉลี่ยของนักเรียนแยกตามห้อง (Rows) และวิชา (Columns)

Examples

ตัวอย่างที่ 1: Pivot Table พื้นฐาน – สรุปยอดขายรายภาคและสินค้าPIVOTBY(A2:A20, B2:B20, C2:C20, SUM)

สร้าง Pivot Table ที่ A2:A20 เป็น Row Fields (Region) B2:B20 เป็น Col Fields (Product) C2:C20 เป็น Values ที่จะรวม (Sales Amount) ผลลัพธ์จะแสดงเมทริกซ์ 2 มิติของผลรวมยอดขาย

fx
=PIVOTBY(A2:A20, B2:B20, C2:C20, SUM)

ผลลัพธ์ตารางแสดงผลรวมยอดขายแยกตามภาค (แถว) และสินค้า (คอลัมน์)
ตัวอย่างที่ 2: Pivot Table พร้อม Header, Grand Total และจัดเรียงตามยอดขายจากมากไปน้อยPIVOTBY(Sales[Region], Sales[Product], Sales[Amount], SUM, TRUE, -1, -1, -1, -1)

ใช้ Excel Table reference (Sales[Region] ฯลฯ) TRUE แสดง field_headers -1 แสดงผลรวมทั้งหมด -1 (row_sort_order) เรียง Row จากผลรวมมากไปน้อย -1 (col_sort_order) เรียง Column เช่นเดียวกัน ผลลัพธ์เป็นรายงานเสร็จสิ้นพร้อมโครงสร้าง Pivot Table ที่มี Header และ Grand Total

fx
=PIVOTBY(Sales[Region], Sales[Product], Sales[Amount], SUM, TRUE, -1, -1, -1, -1)

ผลลัพธ์ตารางพร้อม Header แสดง Grand Total และเรียง Row, Column ตามผลรวมจากมากไปน้อย
ตัวอย่างที่ 3: Pivot Table แสดง 2 ค่า (ค่าเฉลี่ยและจำนวน) พร้อมกันPIVOTBY(Scores[Room], Scores[Subject], Scores[Value], HSTACK(AVERAGE, COUNT))

ใช้ HSTACK รวมฟังก์ชัน AVERAGE (คำนวณค่าเฉลี่ยคะแนน) และ COUNT (นับจำนวนบันทึก) ผลลัพธ์แต่ละช่องจะมี 2 คอลัมน์แนบเรียง เช่น ห้อง A วิชา Math แสดง 85 (ค่าเฉลี่ย) และ 30 (จำนวน)

fx
=PIVOTBY(Scores[Room], Scores[Subject], Scores[Value], HSTACK(AVERAGE, COUNT))

ผลลัพธ์ตารางแสดงค่าเฉลี่ยและจำนวนนักเรียนในแต่ละช่อง
ตัวอย่างที่ 4: Pivot Table กรองข้อมูลเฉพาะเดือนที่ 1-6 โดย FILTERPIVOTBY(FILTER(Sales[Region], Sales[Month]

ใช้ FILTER function ตัดแต่เฉพาะแถว (row) ที่เดือน <= 6 แล้วส่งผ่านให้ PIVOTBY ผลลัพธ์คือ Pivot Table ที่มีข้อมูลแค่ครึ่งปีแรก

fx
=PIVOTBY(FILTER(Sales[Region], Sales[Month]<=6), FILTER(Sales[Product], Sales[Month]<=6), FILTER(Sales[Amount], Sales[Month]<=6), SUM)

ผลลัพธ์ตารางสรุปยอดขายเฉพาะเดือน 1-6 เท่านั้น

FAQs

PIVOTBY ต่างจาก Pivot Table เมนูธรรมชาติอย่างไร?+

ผม Pivot Table เมนูดีตรงที่มี Slicer, Filter, Drill Down ฯลฯ แต่ PIVOTBY มีข้อดีคือ Dynamic (อัปเดตอัตโนมัติ), สามารถใส่ในสูตร อื่นๆ ได้, ไม่ต้องสร้าง pivot field ใหม่ซ้ำแล้วซ้ำเล่า ผมชอบใช้ PIVOTBY เมื่อต้องการรายงานที่เปลี่ยนแปลงพร้อมกับแหล่งข้อมูล

PIVOTBY ต่างจาก GROUPBY อย่างไร?+

GROUPBY มีแค่ Row Fields (สรุปเป็นรายการลงมา) ส่วน PIVOTBY มีทั้ง Row และ Column Fields (สรุปเป็นตาราง 2 มิติ) ถ้าต้องการตาราง 2 มิติ ใช้ PIVOTBY ถ้าต้องการรายการแนวตั้ง ใช้ GROUPBY

PIVOTBY รองรับ Slicer ได้ไหม?+

ไม่โดยตรง เพราะ PIVOTBY ไม่ใช่ Pivot Table จริงๆ แต่ผมชอบแก้ไขนี้โดยเพิ่ม Dropdown list ที่อ้างอิงไปยังข้อมูลต้นทาง หรือใช้ FILTER ร่วมกับ PIVOTBY แล้วให้ Dropdown ควบคุมเงื่อนไขในสูตร เช่นเลือกเดือนหรือภูมิภาค

ใช้ PIVOTBY กับตาราง Structured Range ได้ไหม?+

ได้ครับ ผมใช้ Table reference เช่น Sales[Region], Sales[Product] ได้เลย แม้แต่ Table ที่มีการ update ข้อมูลใหม่ PIVOTBY จะรับรู้และอัปเดตผลลัพธ์โดยอัตโนมัติ

row_sort_order = -1 หมายความว่าอะไร?+

ผมอธิบายว่า row_sort_order = -1 หมายถึง เรียง Row ตามผลรวมมากไปน้อย ค่า 1 คือเรียงเหมือนลำดับต้นทาง 2 คือเรียง A-Z ไม่มี ascending/descending สำหรับ A-Z ปกติจะเป็น descending ถ้าต้อง ascending ต้องใช้ SORT ครอบบนนอก PIVOTBY

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ PIVOTBY จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้PIVOTBYStatistical
Lookup and reference (4)
FILTER

FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ

HSTACK

HSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวนอน (ต่อท้ายไปทางขวา) หากช่วงข้อมูลที่นำมารวมมีจำนวนแถวไม่เท่ากัน HSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ

SORT

SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์

VLOOKUP

VLOOKUP เป็นฟังก์ชันค้นหาแนวตั้งที่ได้รับความนิยมสูงสุดใน Excel โดยค้นหาค่าที่ต้องการในคอลัมน์ซ้ายสุดของตาราง จากนั้นดึงข้อมูลจากคอลัมน์ที่ระบุในแถวเดียวกัน รองรับทั้งการค้นหาแบบตรงทุกตัวอักษร (Exact Match) และแบบประมาณค่า (Approximate Match) สำหรับข้อมูลที่เรียงลำดับ ข้อจำกัดหลักคือต้องค้นหาจากคอลัมน์ซ้ายสุดเท่านั้น ไม่สามารถดึงข้อมูลจากด้านซ้ายของคอลัมน์ค้นหาได้

Math and trigonometry (2)
PERCENTOF

ฟังก์ชันใหม่ใน Excel 365 ที่คำนวณว่าข้อมูลชุดย่อยคิดเป็นกี่เปอร์เซ็นต์ของข้อมูลทั้งหมด ออกแบบมาให้ใช้คู่กับ GROUPBY และ PIVOTBY เพื่อทำคอลัมน์ % of total โดยไม่ต้องเขียนสูตรหาร

SUMIF

SUMIF จะทำการบวกตัวเลขในเซลล์ที่ตรงตามเงื่อนไขที่ระบุ (1 เงื่อนไข) โดยสามารถตรวจสอบเงื่อนไขจากช่วงข้อมูลหนึ่ง (range) แล้วไปบวกตัวเลขในอีกช่วงข้อมูลหนึ่ง (sum_range) ได้ หรือจะตรวจสอบและบวกในช่วงเดียวกันก็ได้ ที่เจ๋งคือมันทำงานได้เร็วกว่า SUMPRODUCT หรือ Array Formula มาก เลยเป็นตัวเลือกแรกสำหรับการรวมค่าแบบมีเงื่อนไขครับ

Statistical (1)
GROUPBY

GROUPBY เป็นฟังก์ชันใหม่ใน Excel 365 ที่ใช้จัดกลุ่มข้อมูลและคำนวณผลสรุป (เช่น SUM, COUNT, AVERAGE) ตามกลุ่มนั้นๆ คล้ายกับการทำงานของ Pivot Table แต่ยืดหยุ่นกว่าเพราะเป็นสูตร สามารถกำหนดหัวตาราง ผลรวมย่อย และการเรียงลำดับได้ในตัว

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่