Thep Excel

BYROW – ประมวลผลทีละแถวด้วย LAMBDA

BYROW เป็น LAMBDA Helper Function ที่ประมวลผลข้อมูลทีละแถว โดยส่งแต่ละแถวทั้งหมด (เป็น array) เข้าไปใน LAMBDA แล้ว return ผลลัพธ์เป็นคอลัมน์เดียว ที่เจ๋งคือ BYROW รองรับทั้ง short-form syntax (=BYROW(array, SUM)) สำหรับการ aggregate ง่ายๆ และ custom LAMBDA สำหรับ logic ซับซ้อนที่ต้องตรวจสอบหลายคอลัมน์พร้อมกัน เช่น ตรวจว่านักเรียนผ่านทุกวิชา (MIN>=50) หรือรวมข้อความหลายคอลัมน์ด้วย TEXTJOIN ต่างจาก MAP ที่ทำงานทีละ cell และ BYCOL ที่ทำงานทีละคอลัมน์ BYROW ทำให้คุณเขียน logic ครั้งเดียว แล้วประมวลผลทุกแถวพร้อมกันทันที

=BYROW(array, lambda)

By ThepExcel AI Agent
18 December 2025

Function Metrics


Popularity
8/10

Difficulty
6/10

Usefulness
9/10

Syntax & Arguments

=BYROW(array, lambda)

Argument Type Required Default Description
array Range/Array Yes ช่วงข้อมูลหรือ array ที่ต้องการประมวลผลทีละแถว สามารถใช้ range reference (A1:D10), structured reference (Table[Columns]), หรือ named range ได้
lambda Function (LAMBDA) Yes ฟังก์ชัน LAMBDA ที่รับ parameter หนึ่งตัว (แทนข้อมูล 1 แถว ซึ่งเป็น array) และ return ผลลัพธ์เป็นค่าเดียวต่อแถว สามารถใช้ short-form syntax กับ aggregate functions เช่น SUM, MAX, AVERAGE หรือเขียน custom LAMBDA สำหรับ logic ที่ซับซ้อนได้ หาก LAMBDA return หลายค่าจะเกิด #CALC! error

How it works

คำนวณยอดรวมรายบุคคลจากข้อมูลรายเดือน

ใช้ BYROW คู่กับ SUM เพื่อรวมยอดขาย รายได้ หรือค่าใช้จ่ายของแต่ละคน (แถว) จากข้อมูลรายเดือน (คอลัมน์) โดยไม่ต้องเขียนสูตร SUM ซ้ำในทุกแถว เหมาะสำหรับรายงานที่มีหลายสิบหรือหลายร้อยแถว

ตรวจสอบเงื่อนไขที่ซับซ้อนในแต่ละแถว

ใช้ BYROW กับ custom LAMBDA เพื่อตรวจสอบเงื่อนไขที่ต้องพิจารณาหลายคอลัมน์พร้อมกัน เช่น ตรวจสอบว่านักเรียนผ่านทุกวิชา (คะแนนต่ำสุด >= 50) หรือพนักงานบรรลุ KPI ทุกตัวชี้วัด (ทุกค่า > target) ทำได้ง่ายกว่าการใช้ AND/IF ซ้อนกัน

รวมข้อความหลายคอลัมน์เป็น formatted output

ใช้ BYROW คู่กับ TEXTJOIN เพื่อรวมข้อมูลหลายคอลัมน์ (ที่อยู่, ชื่อ-นามสกุล, รายการสินค้า) ในแต่ละแถวให้เป็นข้อความเดียวที่มี format สวยงาม พร้อมใช้ส่งออกหรือแสดงผล ช่วยทำ data concatenation ทั้งตารางในคราวเดียว

วิเคราะห์ความผันผวนและ trends รายแถว

ใช้ BYROW เพื่อคำนวณค่าสถิติในแต่ละแถว เช่น Range (MAX-MIN), Standard Deviation, Coefficient of Variation สำหรับวิเคราะห์ความผันผวนของราคาหุ้น อุณหภูมิ หรือยอดขาย ทำให้เห็น pattern และ outliers ได้ชัดเจน

นับจำนวนค่าที่ตรงเงื่อนไขในแต่ละแถว

ใช้ BYROW กับ SUM(–(condition)) pattern เพื่อนับจำนวนค่าที่ตรงเงื่อนไข เช่น นับจำนวนวันที่ยอดขาย > 10,000 นับจำนวน tasks ที่เสร็จสมบูรณ์ หรือนับจำนวน cells ที่มีค่า > average ทำได้ยืดหยุ่นกว่า COUNTIF

สร้าง Summary Table ด้วยหลายตัวชี้วัดพร้อมกัน

ใช้ BYROW คู่กับ HSTACK เพื่อคำนวณหลายตัวชี้วัดในแต่ละแถวพร้อมกัน เช่น SUM, AVERAGE, MAX, MIN ทำให้ได้ summary table ที่สมบูรณ์ในคำสั่งเดียว แทนที่จะต้องเขียนสูตรแยกกันหลายคอลัมน์

ตรวจสอบ Data Quality และหาแถวที่มีปัญหา

ใช้ BYROW เพื่อตรวจสอบความสมบูรณ์ของข้อมูลในแต่ละแถว เช่น ตรวจหาแถวว่าง (COUNTA=0) แถวที่ข้อมูลไม่ครบ (COUNTA < expected) หรือแถวที่มี outliers (MAX > threshold) ช่วยทำ data cleaning อย่างเป็นระบบ

Examples

ตัวอย่างที่ 1: รูปแบบพื้นฐาน – SUM แต่ละแถว
BYROW(SalesData[Q1:Q4], LAMBDA(row, SUM(row)))
สมมติว่า SalesData[Q1:Q4] คือตารางที่มี 4 แถว (พนักงาน 4 คน) และ 4 คอลัมน์ (ยอดขายไตรมาส 1-4) เช่น แถวแรก: {35000, 42000, 38000, 35000}
.
BYROW จะส่งข้อมูลทั้งแถวเข้า LAMBDA ซึ่งคำนวณ SUM(row) = 150000 แล้วทำซ้ำกับทุกแถว return array คอลัมน์เดียว {150000; 128000; 175000; 142000}
.
ตัวอย่างนี้แสดงการใช้ BYROW เพื่อคำนวณยอดรวมแบบ row-wise ซึ่งง่ายกว่าการเขียนสูตร SUM ทีละแถวมากครับ 😎
Excel Formula:

=BYROW(SalesData[Q1:Q4], LAMBDA(row, SUM(row)))

Result:

{150000; 128000; 175000; 142000}

ตัวอย่างที่ 2: Short-form Syntax – ใช้ฟังก์ชันโดยตรง
BYROW(Expenses[Jan:Dec], AVERAGE)
Short-form syntax ช่วยให้เขียนสูตรสั้นลงได้เมื่อใช้ aggregate functions ที่รับ argument เดียว เช่น SUM, AVERAGE, MAX, MIN, COUNT, COUNTA
.
แทนที่จะเขียน LAMBDA(row, AVERAGE(row)) สามารถเขียนแค่ AVERAGE ได้เลย 💡
.
ในตัวอย่างนี้ Expenses[Jan:Dec] มี 4 แถว (แผนก 4 แผนก) และ 12 คอลัมน์ (ค่าใช้จ่ายรายเดือน) BYROW จะคำนวณค่าเฉลี่ยค่าใช้จ่ายรายเดือนของแต่ละแผนก return array {42500; 38200; 51000; 39800}
.
Short-form นี้ทำงานเร็วกว่าและอ่านง่ายกว่า แต่ไม่รองรับ logic ที่ซับซ้อน
Excel Formula:

=BYROW(Expenses[Jan:Dec], AVERAGE)

Result:

{42500; 38200; 51000; 39800}

ตัวอย่างที่ 3: Conditional Logic – ตรวจสอบเงื่อนไขในแถว
BYROW(ExamScores[Math:Science], LAMBDA(r, IF(MIN(r)>=50, "Pass", "Fail")))
สมมติ ExamScores[Math:Science] มี 4 แถว (นักเรียน 4 คน) และ 5 คอลัมน์ (คะแนนวิชาต่างๆ)
.
เช่น แถวที่ 1: {85, 78, 92, 88, 90} → ผ่านทุกวิชา
แถวที่ 2: {45, 62, 58, 72, 68} → มีวิชาที่ได้ต่ำกว่า 50
.
BYROW ส่งแต่ละแถวเข้า LAMBDA ซึ่งตรวจสอบว่าคะแนนต่ำสุด MIN(r) >= 50 หรือไม่ ถ้าใช่ return "Pass" ถ้าไม่ใช่ return "Fail"
.
ตัวอย่างนี้แสดงวิธีใช้ BYROW กับ logic ที่ต้องพิจารณาหลายคอลัมน์พร้อมกัน ซึ่งถ้าใช้สูตรปกติจะต้องเขียน nested IF ยาวมากครับ 😅
Excel Formula:

=BYROW(ExamScores[Math:Science], LAMBDA(r, IF(MIN(r)>=50, "Pass", "Fail")))

Result:

{"Pass"; "Fail"; "Pass"; "Pass"}

ตัวอย่างที่ 4: Text Manipulation – รวมข้อความในแถว
BYROW(AddressData[Street:PostalCode], LAMBDA(r, TEXTJOIN(", ", TRUE, r)))
สมมติ AddressData[Street:PostalCode] มี 3 แถว (ลูกค้า 3 คน) และ 3 คอลัมน์: Street, City, PostalCode
.
เช่น แถวแรก: {"123 Sukhumvit Rd", "Bangkok", "10110"}
.
BYROW ส่งแต่ละแถวเข้า LAMBDA ซึ่งใช้ TEXTJOIN(", ", TRUE, r) เพื่อรวมข้อความทุกคอลัมน์ในแถวเป็น string เดียว คั่นด้วยคอมม่า
.
parameter TRUE ทำให้ข้ามค่าว่าง (empty cells) ไปอัตโนมัติ ผลลัพธ์ได้ที่อยู่แบบเต็มที่พร้อมใช้งานเลย 😎
.
เหมาะมากสำหรับการรวมข้อมูลหลายคอลัมน์เป็น formatted output
Excel Formula:

=BYROW(AddressData[Street:PostalCode], LAMBDA(r, TEXTJOIN(", ", TRUE, r)))

Result:

{"123 Sukhumvit Rd, Bangkok, 10110"; "456 Phahonyothin Rd, Nonthaburi, 11000"; "789 Ratchadaphisek Rd, Bangkok, 10400"}

ตัวอย่างที่ 5: Counting & Filtering – นับค่าตามเงื่อนไข
BYROW(ProjectScores[Task1:Task10], LAMBDA(r, SUM(--(r>=80))))
สมมติ ProjectScores[Task1:Task10] มี 4 แถว (ทีมงาน 4 ทีม) และ 10 คอลัมน์ (คะแนน task ต่างๆ 0-100) เช่น แถวแรก: {85, 92, 78, 88, 95, 82, 90, 87, 84, 91} BYROW ส่งแต่ละแถวเข้า LAMBDA ที่ใช้ pattern SUM(–(condition)) เพื่อนับจำนวนค่าที่ตรงเงื่อนไข: (r>=80) สร้าง boolean array {TRUE, TRUE, FALSE, TRUE, …} การใช้ double negative — แปลง TRUE เป็น 1 และ FALSE เป็น 0 แล้ว SUM นับผลรวม = จำนวน tasks ที่ได้คะแนน 80+ ในตัวอย่างนี้ได้ {7; 4; 9; 5} แสดงว่าทีมแรกมี 7 tasks ที่ทำได้ดีเยี่ยม (>=80) pattern นี้เทียบเท่า COUNTIF แต่ยืดหยุ่นกว่าเพราะใช้ได้กับ arrays ใน BYROW
Excel Formula:

=BYROW(ProjectScores[Task1:Task10], LAMBDA(r, SUM(--(r>=80))))

Result:

{7; 4; 9; 5}

ตัวอย่างที่ 6: Statistical Analysis – หา Range และค่าสถิติ
BYROW(StockPrices[Day1:Day30], LAMBDA(r, MAX(r) - MIN(r)))
สมมติ StockPrices[Day1:Day30] มี 4 แถว (หุ้น 4 ตัว) และ 30 คอลัมน์ (ราคาปิดรายวัน) เช่น แถวแรก: ราคาวันที่ 1 = 120.50, ราคาสูงสุดในเดือน = 138.20, ราคาต่ำสุด = 112.70 BYROW ส่งแต่ละแถวเข้า LAMBDA ที่คำนวณ MAX(r) – MIN(r) เพื่อหา Range (ความผันผวน) ของราคาหุ้นในแต่ละ ticker ผลลัพธ์ {25.50; 18.75; 32.20; 15.80} แสดงว่า ticker แรกมีความผันผวน 25.50 บาท ticker ที่ 3 มีความผันผวนสูงสุด 32.20 บาท ตัวอย่างนี้แสดงวิธีใช้ BYROW เพื่อคำนวณค่าสถิติที่ต้องใช้หลาย aggregate functions พร้อมกัน
Excel Formula:

=BYROW(StockPrices[Day1:Day30], LAMBDA(r, MAX(r) - MIN(r)))

Result:

{25.50; 18.75; 32.20; 15.80}

ตัวอย่างที่ 7: Advanced – HSTACK หลาย aggregate พร้อมกัน
BYROW(SalesData[Q1:Q4], LAMBDA(r, HSTACK(SUM(r), AVERAGE(r), MAX(r))))
ตัวอย่างขั้นสูงที่แสดงวิธีคำนวณหลายค่าพร้อมกัน แต่ละแถว โดยใช้ HSTACK ภายใน LAMBDA สมมติ SalesData[Q1:Q4] มี 4 แถว 4 คอลัมน์ (ยอดขาย 4 ไตรมาส) BYROW ส่งแต่ละแถวเข้า LAMBDA ซึ่งใช้ HSTACK(SUM(r), AVERAGE(r), MAX(r)) เพื่อคำนวณ 3 ค่าพร้อมกัน: ยอดรวม, ค่าเฉลี่ย, ไตรมาสที่ขายดีที่สุด ผลลัพธ์เป็น 2D array (4 rows × 3 columns) แถวแรก: ยอดรวม=150000, ค่าเฉลี่ย=37500, MAX=42000 แนวทางนี้เหมาะสำหรับการสร้าง summary table ที่มีหลายตัวชี้วัดพร้อมกัน แต่ต้องระวังว่าถ้า LAMBDA return array หลายค่าจะทำให้ output ขยายเป็น 2D แทนที่จะเป็นคอลัมน์เดียว
Excel Formula:

=BYROW(SalesData[Q1:Q4], LAMBDA(r, HSTACK(SUM(r), AVERAGE(r), MAX(r))))

Result:

{{150000, 37500, 42000}; {128000, 32000, 38000}; {175000, 43750, 52000}; {142000, 35500, 41000}}

ตัวอย่างที่ 8: Edge Case – ตรวจสอบแถวว่างและข้อมูลขาด
BYROW(DataEntry[Col1:Col5], LAMBDA(r, IF(COUNTA(r)=0, "Empty Row", IF(COUNTA(r)
ตัวอย่าง edge case ที่ใช้ BYROW ตรวจสอบ data quality ในแต่ละแถว สมมติ DataEntry[Col1:Col5] มี 4 แถว 5 คอลัมน์ แถวที่ 1: มีข้อมูลครบ 5 ช่อง แถวที่ 2: มีข้อมูล 3 ช่อง (ขาด 2 ช่อง) แถวที่ 3: ว่างทั้งแถว แถวที่ 4: มีข้อมูลครบ BYROW ส่งแต่ละแถวเข้า LAMBDA ที่ใช้ nested IF ตรวจสอบ: (1) COUNTA(r)=0 → แถวว่างเปล่า return "Empty Row" (2) COUNTA(r)<5 → มีข้อมูลไม่ครบ return "Incomplete" (3) อื่นๆ → ข้อมูลครบ return "Complete" ผลลัพธ์ {"Complete"; "Incomplete"; "Empty Row"; "Complete"} ช่วยระบุแถวที่มีปัญหาสำหรับ data cleaning แนวคิดนี้ขยายได้เป็น validation ที่ซับซ้อนกว่า เช่น ตรวจสอบ format หรือ outliers
Excel Formula:

=BYROW(DataEntry[Col1:Col5], LAMBDA(r, IF(COUNTA(r)=0, "Empty Row", IF(COUNTA(r)<5, "Incomplete", "Complete"))))

Result:

{"Complete"; "Incomplete"; "Empty Row"; "Complete"}

FAQs

BYROW ต่างจาก BYCOL อย่างไร?

คำถามนี้ถามกันบ่อยมากครับ 😅
.
BYROW และ BYCOL ต่างก็เป็น LAMBDA Helper Functions แต่ทำงานคนละทิศทาง:
.
– BYROW ส่งข้อมูลทีละแถว (horizontal) เข้า LAMBDA แล้ว return array คอลัมน์เดียว (vertical, 1 ค่าต่อ 1 แถว)
– BYCOL ส่งข้อมูลทีละคอลัมน์ (vertical) แล้ว return array แถวเดียว (horizontal, 1 ค่าต่อ 1 คอลัมน์)
.
เช่น ถ้ามี data 5 rows × 10 columns: BYROW จะ return 5 rows × 1 column, BYCOL จะ return 1 row × 10 columns
.
ส่วนตัวผมแนะนำให้เลือกตามทิศทางที่ต้องการคำนวณครับ เช่น ถ้าต้องการยอดรวมแต่ละคน (แถว) → ใช้ BYROW ถ้าต้องการยอดรวมแต่ละเดือน (คอลัมน์) → ใช้ BYCOL

BYROW ต่างจาก MAP อย่างไร?

MAP และ BYROW ทำงานในระดับที่ต่างกันครับ:
.
– MAP ส่งข้อมูลทีละ element (1 cell ต่อครั้ง) เข้า LAMBDA แล้ว return array ที่มีขนาดเท่ากับ input → transform แต่ละ cell
– BYROW ส่งข้อมูลทั้งแถว (หลาย cells พร้อมกัน) แล้ว return 1 ค่าต่อแถว → aggregate แต่ละแถว
.
ตัวอย่างง่ายๆ:
– MAP เหมาะสำหรับ element-wise operations เช่น คูณทุกค่าด้วย 2, แปลง format, UPPER ทุก cell
– BYROW เหมาะสำหรับ row-wise aggregations เช่น SUM, AVERAGE, COUNT แต่ละแถว
.
จำง่ายๆ คือ MAP = transform, BYROW = aggregate 💡

LAMBDA ต้อง return ค่าเดียวหรือหลายค่า?

โดยปกติ BYROW คาดหวังให้ LAMBDA return ค่าเดียวต่อแถว (single value) เพื่อสร้าง array คอลัมน์เดียว
.
ถ้า LAMBDA return array หลายค่า (เช่น ใช้ HSTACK) จะได้ #CALC! error ซึ่งเจอบ่อยมากครับ 😅
.
ยกเว้นว่าคุณต้องการให้ output เป็น 2D array จริงๆ (ตามตัวอย่างที่ 7) ในกรณีนั้น BYROW จะขยาย output เป็น multi-column array แทน
.
แต่โดยปกติแล้ว pattern ที่ถูกต้องคือ return aggregate value เช่น SUM(r), MAX(r), TEXTJOIN(…, r) ซึ่งได้ผลลัพธ์เป็นค่าเดียว

ใช้ BYROW กับ Excel Table และ structured reference ได้ไหม?

ได้ BYROW รองรับ structured reference จาก Excel Tables ได้ดีมาก เช่น =BYROW(Sales[Q1:Q4], SUM) จะประมวลผลเฉพาะคอลัมน์ Q1-Q4 จากตาราง Sales โดยไม่สนใจคอลัมน์อื่นๆ ข้อดีของการใช้ Table reference คือ: (1) สูตรอ่านง่ายและบอกเจตนาชัดเจน (2) ปรับขนาดอัตโนมัติเมื่อเพิ่ม/ลบแถวในตาราง (3) ป้องกัน hardcoding ช่วง A1:D10 ที่อาจผิดเมื่อข้อมูลเปลี่ยน แนะนำให้ใช้ Table reference กับ BYROW เสมอเมื่อทำงานกับข้อมูลที่มีโครงสร้าง

Short-form syntax (=BYROW(array, SUM)) ใช้ได้กับฟังก์ชันอะไรบ้าง?

Short-form syntax (เรียกอีกอย่างว่า eta reduction หรือ point-free style) ใช้ได้กับ aggregate functions ที่รับ array เป็น argument เดียว เช่น SUM, AVERAGE, MAX, MIN, COUNT, COUNTA, PRODUCT, STDEV.S, VAR.S ไม่สามารถใช้กับฟังก์ชันที่ต้องการหลาย arguments เช่น SUMIF, COUNTIF, TEXTJOIN เพราะฟังก์ชันเหล่านี้ไม่ได้รับแค่ array เดียว ในกรณีนั้นต้องเขียน full LAMBDA แทน เช่น LAMBDA(r, TEXTJOIN(“, “, TRUE, r)) Short-form ทำให้สูตรสั้นและอ่านง่าย แต่มีข้อจำกัดในความยืดหยุ่น

BYROW รองรับ Excel เวอร์ชันไหน?

BYROW เป็น LAMBDA Helper Function ที่เปิดตัวใน Excel 365 (Microsoft 365) และ Excel 2024 เท่านั้น ไม่รองรับ Excel 2021, Excel 2019, หรือเวอร์ชันเก่ากว่า ฟังก์ชันนี้ต้องการ Dynamic Array Engine และ LAMBDA support ซึ่งมีแค่ใน Excel 365 และ 2024 ถ้าใช้ Excel for Web (Excel Online) ก็สามารถใช้ได้เช่นกัน ตราบใดที่ login ด้วย Microsoft 365 account ถ้าต้องการใช้ใน Excel เวอร์ชันเก่า ต้องเขียน array formula หรือ VBA แทน

ทำไม BYROW ของฉันถึงได้ #CALC! error?

#CALC! error ใน BYROW เกิดจากสาเหตุหลักๆ ครับ:
.
1. ไม่ได้ส่ง LAMBDA เข้าไป เช่น =BYROW(A1:D10) → ขาด argument ที่ 2
2. LAMBDA return หลายค่าแทนที่จะเป็นค่าเดียว เช่น LAMBDA(r, FILTER(r, r>100)) → FILTER อาจ return array
3. LAMBDA ทำงานไม่สำเร็จกับข้อมูลบางแถว เช่น MAX(r) แต่ r เป็น text ทำให้ MAX ไม่ได้ผลลัพธ์
.
วิธีแก้ที่ผมแนะนำ:
– ตรวจสอบว่า LAMBDA return ค่าเดียวจริงๆ
– จัดการ edge cases เช่น empty rows หรือ invalid data ด้วย IFERROR หรือ IF
.
ตัวอย่าง: =BYROW(data, LAMBDA(r, IFERROR(SUM(r), 0))) จะช่วยป้องกัน error ได้ครับ 💡

ใช้ BYROW กับ SUMIFS หรือ COUNTIFS ได้ไหม?

ไม่ได้โดยตรงครับ เพราะ *IFS functions (SUMIFS, COUNTIFS, AVERAGEIFS) ต้องการ ranges เป็น arguments ไม่ใช่ arrays ที่ BYROW ส่งให้
.
เมื่อ BYROW ส่ง row เข้า LAMBDA มันเป็น array ไม่ใช่ range reference ทำให้ *IFS ไม่ทำงาน (เคยติดตรงนี้เหมือนกันครับ 😅)
.
วิธีแก้ที่ผมใช้:
– ใช้ LAMBDA(r, SUM(–(r>criteria))) แทน SUMIFS
– หรือ LAMBDA(r, SUM(FILTER(r, r>criteria)))
.
แม้ว่าจะยาวกว่า แต่ได้ผลลัพธ์เหมือนกันครับ อีกทางเลือกคือใช้ MAKEARRAY หรือ SCAN ถ้าต้องการ reference ช่วงเดิม

BYROW สามารถ nest ซ้อนกันได้ไหม?

ได้ครับ แต่ไม่ค่อยมีประโยชน์เพราะ BYROW return array คอลัมน์เดียว (1D array)
.
การ nest BYROW(BYROW(…)) จะยังได้ array คอลัมน์เดียวอยู่ดี เพียงแต่ aggregate ซ้ำอีกรอบ ซึ่งมักไม่สมเหตุสมผล
.
pattern ที่มีประโยชน์กว่าคือ:
– Combine กับ BYCOL: BYCOL(BYROW(data, SUM), AVERAGE)
– ใช้ LET เพื่อ chain operations: LET(rowsums, BYROW(data, SUM), BYROW(rowsums, LAMBDA(r, r/total)))
.
ส่วนตัวผมแนะนำให้ใช้ LET เพื่อแบ่งเป็น steps ที่เข้าใจง่ายกว่าครับ เพราะ nested LAMBDA Helper Functions มักทำให้สูตรอ่านยาก 📝

Resources & Related

Additional Notes

BYROW เป็น LAMBDA Helper Function ที่ช่วยให้คุณประมวลผลข้อมูลทีละแถว โดยส่งแต่ละแถว (เป็น array ทั้งแถว) เข้าไปในฟังก์ชัน LAMBDA ที่คุณกำหนดเอง แล้ว return ผลลัพธ์เป็น array คอลัมน์เดียวที่มีค่าหนึ่งค่าต่อหนึ่งแถว
.
ฟังก์ชันนี้เหมาะสำหรับการคำนวณสรุปข้อมูลในแต่ละแถว เช่น หาผลรวม ค่าเฉลี่ย ค่าสูงสุด หรือตรวจสอบเงื่อนไขที่ต้องพิจารณาหลายคอลัมน์พร้อมกัน โดยไม่ต้องใช้สูตรซ้ำซ้อน
.
ที่เจ๋งคือ ต่างจาก MAP ที่ทำงานทีละ element และ BYCOL ที่ทำงานทีละคอลัมน์ BYROW ทำให้คุณสามารถเขียนตัว logic การคำนวณครั้งเดียว แล้วประมวลผลทุกแถวพร้อมกันได้ทันที 😎

Leave a Reply

Your email address will not be published. Required fields are marked *