0Pricing
Excel Formulas Academy · บทเรียน

วนซ้ำด้วย MAP และ REDUCE

ใช้ LAMBDA กับอาร์เรย์เพื่อแปลงค่าหรือสะสมค่า

วนซ้ำด้วย MAP และ REDUCE เป็นบทเรียน Excel Formulas Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Excel Formulas Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน

การวนซ้ำโดยไม่ใช้โค้ด

บางครั้งคุณต้องการใช้การคำนวณเดียวกันกับทุกค่าในช่วง หรือย่อช่วงทั้งหมดให้เหลือเป็นตัวเลขเดียว ในการเขียนโปรแกรม สิ่งนี้เรียกว่าการวนซ้ำ ส่วนในสเปรดชีตสมัยใหม่ MAP และ REDUCE จะทำงานนี้ให้คุณโดยใช้ LAMBDA

  • MAP แปลงแต่ละองค์ประกอบของอาร์เรย์ให้เป็นองค์ประกอบใหม่
  • REDUCE รวมองค์ประกอบทั้งหมดเป็นผลลัพธ์สะสมหนึ่งค่า

ทั้งสองฟังก์ชันรับ LAMBDA ที่อธิบายว่าจะทำอะไรกับแต่ละค่า ฟังก์ชันเหล่านี้ใช้ได้ใน Microsoft 365 และ Google Sheets

MAP ทำงานอย่างไร

MAP จะไล่ผ่านอาร์เรย์และใช้ LAMBDA กับแต่ละรายการ ทำให้ได้อาร์เรย์ใหม่ที่มีขนาดเท่าเดิม พารามิเตอร์ของ LAMBDA จะได้รับองค์ประกอบทีละหนึ่งค่า

รูปแบบคือ ส่งอาร์เรย์ให้ MAP แล้วตามด้วย LAMBDA ซึ่งพารามิเตอร์ทำหน้าที่แทนค่าแต่ละค่า MAP จะกระจายผลลัพธ์ที่แปลงแล้วไปยังเซลล์ต่าง ๆ โดยอัตโนมัติ

=MAP(array, LAMBDA(value, calculation))

ตัวอย่าง MAP แรก

สมมติว่า A2:A6 มีราคาห้ารายการ และคุณต้องการเพิ่มราคาแต่ละรายการขึ้น 10 เปอร์เซ็นต์ MAP จะใช้การเพิ่มราคากับทุกค่าในครั้งเดียว

พารามิเตอร์ LAMBDA p แทนราคาแต่ละรายการตามลำดับ MAP จะส่งกลับผลลัพธ์ห้าค่า ค่าแรกต่อเซลล์อินพุตหนึ่งเซลล์ และกระจายลงตามคอลัมน์

ไม่ต้องลากจุดจับเติมข้อมูลและไม่ต้องคัดลอก สูตรเดียวจัดการช่วงทั้งหมดได้

=MAP(A2:A6, LAMBDA(p, p*1.1))

MAP กับสองอาร์เรย์

MAP สามารถไล่ผ่านอาร์เรย์สองชุดไปพร้อมกันได้ จากนั้น LAMBDA จะรับพารามิเตอร์สองตัว โดยแต่ละตัวมาจากอาร์เรย์หนึ่งชุด และจับคู่ตามตำแหน่ง

ในตัวอย่างนี้ เราคูณปริมาณใน A2:A6 ด้วยราคาใน B2:B6 เพื่อหายอดรวมของแต่ละรายการ พารามิเตอร์ q จะจับคู่กับปริมาณแต่ละค่า ส่วน pr จะจับคู่กับราคาแต่ละค่า

อาร์เรย์ทั้งสองชุดต้องมีขนาดเท่ากัน มิฉะนั้นจะเกิดข้อผิดพลาด

=MAP(A2:A6, B2:B6, LAMBDA(q, pr, q*pr))

REDUCE ทำงานอย่างไร

REDUCE ย่ออาร์เรย์ให้เหลือค่าเดียว โดยจะเก็บ ตัวสะสมที่อัปเดตไปพร้อมกับแต่ละองค์ประกอบ

ฟังก์ชันนี้รับสามสิ่ง ได้แก่ ค่าเริ่มต้นของตัวสะสม อาร์เรย์ และ LAMBDA ที่มีพารามิเตอร์สองตัวคือ acc (ยอดสะสมที่กำลังดำเนินอยู่) และ value (องค์ประกอบปัจจุบัน) LAMBDA จะส่งกลับค่าตัวสะสมใหม่ในแต่ละขั้น

=REDUCE(start, array, LAMBDA(acc, value, new_accumulator))

ตัวอย่าง REDUCE แรก

มาหาผลรวมของช่วงด้วย REDUCE กัน (แน่นอนว่า SUM ก็ทำได้เช่นกัน แต่ตัวอย่างนี้ช่วยให้เห็นกลไกได้ชัดเจน)

เราเริ่มตัวสะสมที่ 0 สำหรับแต่ละค่าใน A2:A6 LAMBDA จะนำค่านั้นไปบวกกับ acc เมื่อถึงองค์ประกอบสุดท้าย acc จะมีค่าผลรวม

หากค่าต่าง ๆ คือ 10, 20, 30 ตัวสะสมจะเปลี่ยนเป็น 0, 10, 30, 60 และสิ้นสุดที่ 60

=REDUCE(0, A2:A6, LAMBDA(acc, v, acc + v))

REDUCE กับผลคูณสะสม

เปลี่ยนการดำเนินการ แล้ว REDUCE ก็จะทำงานรูปแบบใหม่ หากต้องการคูณค่าทั้งหมดเข้าด้วยกัน ให้เริ่มตัวสะสมที่ 1 แล้วคูณในแต่ละขั้น

วิธีนี้จะคำนวณผลคูณ ซึ่งมีประโยชน์กับสิ่งต่าง ๆ เช่น ปัจจัยการเติบโตแบบทบต้น ค่าเริ่มต้นมีความสำคัญ ให้ใช้ 0 สำหรับผลรวม และ 1 สำหรับผลคูณ เพราะเป็นค่าเริ่มต้นที่เป็นกลางของการดำเนินการเหล่านั้น

=REDUCE(1, A2:A6, LAMBDA(acc, v, acc * v))

การรวม MAP และ REDUCE

คุณสามารถใช้ MAP เพื่อแปลงค่า และใช้ REDUCE เพื่อสรุปผลในสูตรเดียว งานที่พบบ่อยคือการหาผลรวมของกำลังสองในช่วง

ในตัวอย่างนี้ MAP ยกกำลังสองให้แต่ละค่า จากนั้น REDUCE จะบวกค่าทั้งหมดโดยเริ่มจาก 0 ผลลัพธ์จาก MAP จะกลายเป็นอาร์เรย์ที่ REDUCE นำไปประมวลผล

=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))

MAP และ REDUCE ใน Google Sheets

Google Sheets มีฟังก์ชันทั้งสองด้วยไวยากรณ์เดียวกัน MAP ใช้ LAMBDA กับแต่ละองค์ประกอบ ส่วน REDUCE สะสมค่าด้วยค่าเริ่มต้น อาร์เรย์ และ LAMBDA ที่มีพารามิเตอร์สองตัว

Sheets ยังมีฟังก์ชันช่วยที่เกี่ยวข้อง เช่น SCAN ซึ่งคล้ายกับ REDUCE แต่ส่งกลับตัวสะสมทุกค่าระหว่างทาง แทนที่จะส่งกลับเฉพาะค่าท้ายสุด Excel ก็มี SCAN เช่นกัน

=SCAN(0, A2:A6, LAMBDA(acc, v, acc + v))

เคล็ดลับและข้อควรระวัง

มีบางสิ่งที่ควรจำไว้:

  • ใน MAP LAMBDA ต้องส่งกลับหนึ่งค่าต่อหนึ่งองค์ประกอบ
  • ใน REDUCE LAMBDA ต้องส่งกลับตัวสะสมใหม่เสมอ อย่าลืมส่งค่านี้กลับ
  • เลือกค่าเริ่มต้นให้เหมาะสม: 0 สำหรับผลรวม, 1 สำหรับผลคูณ และสตริงว่างสำหรับการรวมข้อความ
  • อาร์เรย์ที่ส่งมาพร้อมกันต้องมีมิติเดียวกัน

เมื่อไม่แน่ใจ ให้ทดสอบ LAMBDA แบบแทรกในสูตรกับค่าเดียวก่อน

ควรใช้แต่ละฟังก์ชันเมื่อใด

เลือกใช้ MAP เมื่อคุณต้องการผลลัพธ์สำหรับอินพุต แต่ละค่า เช่น การเพิ่มราคาหรือจัดรูปแบบให้ทุกค่า

เลือกใช้ REDUCE เมื่อคุณต้องการรวมค่าหลายค่าให้เหลือ หนึ่งค่า เช่น ยอดรวมที่กำหนดเอง การต่อข้อความ หรือค่าสูงสุดที่ค้นหาด้วยตรรกะของคุณเอง

เมื่อใช้ร่วมกัน ทั้งสองฟังก์ชันช่วยให้คุณเขียนการวนซ้ำที่สเปรดชีตรุ่นเก่าไม่สามารถทำได้ในสูตรเดียว

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจของคุณเกี่ยวกับ REDUCE

ทบทวน: การวนซ้ำด้วย MAP และ REDUCE

คุณได้เรียนรู้วิธีวนผ่านอาร์เรย์ด้วยฟังก์ชันที่ขับเคลื่อนด้วย LAMBDA แล้ว

  • MAP แปลงแต่ละองค์ประกอบเป็นองค์ประกอบใหม่และส่งกลับเป็นอาร์เรย์
  • REDUCE ย่ออาร์เรย์ให้เหลือหนึ่งค่าด้วยตัวสะสม
  • เลือกค่าเริ่มต้นที่เหมาะสม: 0 สำหรับผลรวม และ 1 สำหรับผลคูณ
  • MAP จับคู่หลายอาร์เรย์ได้ และคุณสามารถรวม MAP กับ REDUCE เพื่อสร้างสรุปผลที่ทรงพลังในบรรทัดเดียว
  • SCAN แสดงทุกขั้นตอนระหว่างทาง

ถัดไป คุณจะได้เรียนรู้วิธีบันทึก LAMBDA เป็นฟังก์ชันที่มีชื่อ เพื่อสร้างสูตรที่เป็นระเบียบและนำกลับมาใช้ซ้ำได้ทั่วทั้งเวิร์กบุ๊ก

=REDUCE(0, MAP(A2:A6, LAMBDA(x, x^2)), LAMBDA(acc, v, acc + v))

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

บทเรียน “วนซ้ำด้วย MAP และ REDUCE” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “วนซ้ำด้วย MAP และ REDUCE” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Excel Formulas Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Excel Formulas Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “วนซ้ำด้วย MAP และ REDUCE”

ใช้ LAMBDA กับอาร์เรย์เพื่อแปลงค่าหรือสะสมค่า คุณปฏิบัติ Excel Formulas Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Excel Formulas Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Excel Formulas Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “วนซ้ำด้วย MAP และ REDUCE” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Excel Formulas Academy นี้ได้ไหม

ได้ บทเรียน Excel Formulas Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ตั้งชื่อขั้นตอนด้วย LET
  2. กำหนดฟังก์ชันแบบกำหนดเองด้วย LAMBDA
  3. วนซ้ำด้วย MAP และ REDUCE
  4. ทำให้สูตรสะอาดขึ้นด้วย LAMBDA ที่มีชื่อ
← กลับไปที่ Excel Formulas Academy