PIVOTBY เป็นฟังก์ชัน Excel 365 ที่สร้าง Pivot Table แบบไดนามิก โดยกำหนด Row Fields, Column Fields และ Values ผ่านสูตร พร้อมตั้งค่าการแสดงผลรวมและการเรียงลำดับได้ทันที
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| 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 (ค่าเริ่มต้น: ใช้ทั้งหมด) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
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 ก็ได้ครับ
ดูยอดขายแยกตามภาค (Rows) และประเภทสินค้า (Columns) ในตารางเดียว
เปรียบเทียบข้อมูลรายเดือน (Rows) ของแต่ละปี (Columns)
ดูคะแนนเฉลี่ยของนักเรียนแยกตามห้อง (Rows) และวิชา (Columns)
สร้าง Pivot Table ที่ A2:A20 เป็น Row Fields (Region) B2:B20 เป็น Col Fields (Product) C2:C20 เป็น Values ที่จะรวม (Sales Amount) ผลลัพธ์จะแสดงเมทริกซ์ 2 มิติของผลรวมยอดขาย
ใช้ Excel Table reference (Sales[Region] ฯลฯ) TRUE แสดง field_headers -1 แสดงผลรวมทั้งหมด -1 (row_sort_order) เรียง Row จากผลรวมมากไปน้อย -1 (col_sort_order) เรียง Column เช่นเดียวกัน ผลลัพธ์เป็นรายงานเสร็จสิ้นพร้อมโครงสร้าง Pivot Table ที่มี Header และ Grand Total
ใช้ HSTACK รวมฟังก์ชัน AVERAGE (คำนวณค่าเฉลี่ยคะแนน) และ COUNT (นับจำนวนบันทึก) ผลลัพธ์แต่ละช่องจะมี 2 คอลัมน์แนบเรียง เช่น ห้อง A วิชา Math แสดง 85 (ค่าเฉลี่ย) และ 30 (จำนวน)
ใช้ FILTER function ตัดแต่เฉพาะแถว (row) ที่เดือน <= 6 แล้วส่งผ่านให้ PIVOTBY ผลลัพธ์คือ Pivot Table ที่มีข้อมูลแค่ครึ่งปีแรก
ผม Pivot Table เมนูดีตรงที่มี Slicer, Filter, Drill Down ฯลฯ แต่ PIVOTBY มีข้อดีคือ Dynamic (อัปเดตอัตโนมัติ), สามารถใส่ในสูตร อื่นๆ ได้, ไม่ต้องสร้าง pivot field ใหม่ซ้ำแล้วซ้ำเล่า ผมชอบใช้ PIVOTBY เมื่อต้องการรายงานที่เปลี่ยนแปลงพร้อมกับแหล่งข้อมูล
GROUPBY มีแค่ Row Fields (สรุปเป็นรายการลงมา) ส่วน PIVOTBY มีทั้ง Row และ Column Fields (สรุปเป็นตาราง 2 มิติ) ถ้าต้องการตาราง 2 มิติ ใช้ PIVOTBY ถ้าต้องการรายการแนวตั้ง ใช้ GROUPBY
ไม่โดยตรง เพราะ PIVOTBY ไม่ใช่ Pivot Table จริงๆ แต่ผมชอบแก้ไขนี้โดยเพิ่ม Dropdown list ที่อ้างอิงไปยังข้อมูลต้นทาง หรือใช้ FILTER ร่วมกับ PIVOTBY แล้วให้ Dropdown ควบคุมเงื่อนไขในสูตร เช่นเลือกเดือนหรือภูมิภาค
ได้ครับ ผมใช้ Table reference เช่น Sales[Region], Sales[Product] ได้เลย แม้แต่ Table ที่มีการ update ข้อมูลใหม่ PIVOTBY จะรับรู้และอัปเดตผลลัพธ์โดยอัตโนมัติ
ผมอธิบายว่า row_sort_order = -1 หมายถึง เรียง Row ตามผลรวมมากไปน้อย ค่า 1 คือเรียงเหมือนลำดับต้นทาง 2 คือเรียง A-Z ไม่มี ascending/descending สำหรับ A-Z ปกติจะเป็น descending ถ้าต้อง ascending ต้องใช้ SORT ครอบบนนอก PIVOTBY
ฟังก์ชันที่ผู้เขียนโยงไว้กับ PIVOTBY จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
FILTER กรองข้อมูลจาก Array ตามเงื่อนไขที่กำหนด แล้ว return เป็น Spill Range ที่ขยายอัตโนมัติ เป็น Dynamic Array Function ที่เปลี่ยนวิธีการทำงานกับข้อมูลใน Excel รองรับเงื่อนไขหลายตัว (AND/OR) และสามารถใช้ร่วมกับ SORT UNIQUE XLOOKUP เพื่อสร้างรายงานที่อัปเดตอัตโนมัติ
HSTACK เป็นฟังก์ชัน Dynamic Array ที่ใช้รวมข้อมูลจากหลายช่วงเข้าด้วยกันโดยนำมาเรียงต่อกันในแนวนอน (ต่อท้ายไปทางขวา) หากช่วงข้อมูลที่นำมารวมมีจำนวนแถวไม่เท่ากัน HSTACK จะเติมค่า #N/A ในส่วนที่ขาดหายไปให้โดยอัตโนมัติ
SORT เป็น Dynamic Array Function ที่เรียงลำดับข้อมูลจาก Array แล้ว return เป็น Spill Range ใหม่โดยไม่แก้ไขข้อมูลต้นฉบับ รองรับการเรียงตามคอลัมน์ที่ต้องการ (sort_index) ทั้งจากน้อยไปมาก (1) และมากไปน้อย (-1) รวมถึงเรียงแนวนอน (by_col=TRUE) ต่างจาก SORTBY ที่ใช้คอลัมน์ภายนอกเป็นเกณฑ์
VLOOKUP เป็นฟังก์ชันค้นหาแนวตั้งที่ได้รับความนิยมสูงสุดใน Excel โดยค้นหาค่าที่ต้องการในคอลัมน์ซ้ายสุดของตาราง จากนั้นดึงข้อมูลจากคอลัมน์ที่ระบุในแถวเดียวกัน รองรับทั้งการค้นหาแบบตรงทุกตัวอักษร (Exact Match) และแบบประมาณค่า (Approximate Match) สำหรับข้อมูลที่เรียงลำดับ ข้อจำกัดหลักคือต้องค้นหาจากคอลัมน์ซ้ายสุดเท่านั้น ไม่สามารถดึงข้อมูลจากด้านซ้ายของคอลัมน์ค้นหาได้
ฟังก์ชันใหม่ใน Excel 365 ที่คำนวณว่าข้อมูลชุดย่อยคิดเป็นกี่เปอร์เซ็นต์ของข้อมูลทั้งหมด ออกแบบมาให้ใช้คู่กับ GROUPBY และ PIVOTBY เพื่อทำคอลัมน์ % of total โดยไม่ต้องเขียนสูตรหาร
SUMIF จะทำการบวกตัวเลขในเซลล์ที่ตรงตามเงื่อนไขที่ระบุ (1 เงื่อนไข) โดยสามารถตรวจสอบเงื่อนไขจากช่วงข้อมูลหนึ่ง (range) แล้วไปบวกตัวเลขในอีกช่วงข้อมูลหนึ่ง (sum_range) ได้ หรือจะตรวจสอบและบวกในช่วงเดียวกันก็ได้ ที่เจ๋งคือมันทำงานได้เร็วกว่า SUMPRODUCT หรือ Array Formula มาก เลยเป็นตัวเลือกแรกสำหรับการรวมค่าแบบมีเงื่อนไขครับ
GROUPBY เป็นฟังก์ชันใหม่ใน Excel 365 ที่ใช้จัดกลุ่มข้อมูลและคำนวณผลสรุป (เช่น SUM, COUNT, AVERAGE) ตามกลุ่มนั้นๆ คล้ายกับการทำงานของ Pivot Table แต่ยืดหยุ่นกว่าเพราะเป็นสูตร สามารถกำหนดหัวตาราง ผลรวมย่อย และการเรียงลำดับได้ในตัว
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่