เทพเอ็กเซล ช่วย "ปลุกเทพ Excel ในตัวคุณ"
0
  • No products in the cart.
Excel Array FormulaExcel and Matrix

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 1

ในตอนที่แล้วเราได้เรียนรู้การใช้ Matrix ใน Excel เพื่อแก้สมการกันไปแล้ว ในบทความนี้เราจะมาลองดูตัวอย่างการประยุกต์ที่น่าสนใจอีกอันก็คือการนำมาสรุปข้อมูลในแต่ละแถวหรือแต่ละคอลัมน์กันครับ

สมมติเรามีข้อมูลต้นฉบับเป็น Array หรือ Matrix 4×3 ดังนี้ (ก็พิมพ์ลงไปตรงๆ นั่นแหละ) มาดูซิว่าเราจะทำอะไรกับมันได้บ้าง?

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 2

หาผลรวมแต่ละแถว

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

เดิม Matrix นี้เป็น 4×3 ซึ่งถ้าจะได้ผลรวมแถว มันจะต้องออกมาเป็น Matrix ผลลัพธ์ 4×1

นั่นคือ มันต้องไปคูณกับ Matrix อะไรซักอย่างซึ่งมี 3 แถว 1 คอลัมน์แน่นอนด้วยเหตุผลตามรูปนี้

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 3

ซึ่งมันจะจับคู่แถวใน Matrix แรกมาคูณกับคอลัมน์แรกของ Matrix ที่สอง ซึ่งเราต้องการทั้งเลข 10, 85, 75 มาบวกกันหมดเลย แสดงว่ามันต้องคูณ 1 ทั้งหมดแน่นอน นั่นคือ Matrix ที่สองต้องเป็นเลข 1 หมดเลย เพื่อที่จะให้เป็น 10*1+ 85*1 + 75*1

ดังนั้นเขียนสูตรได้ว่า

=MMULT(B7:D10,F2:F4)
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 4

ซึ่งถ้าเราไม่อยากจะมาทด Matrix ที่มีเลข 1 แบบนั้น เราก็ต้องสร้างมันขึ้นมา เช่น ใช้เลขประจำ COLUMN ของ Matrix แรกมาทำให้เป็น 1 ด้วยการยกกำลัง 0 แล้ว Transpose เปลี่ยนจากแนวนอน เป็นแนวตั้ง ก็ได้ เช่น

=MMULT(B7:D10,TRANSPOSE(COLUMN(B7:D10)^0))
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 5

อธิบายเล็กน้อยเผื่องง

  • =COLUMN(B7:D10) จะได้ {2,3,4}
  • พอจับยกกำลัง 0 จะได้ {1,1,1} ซึ่งเป็น Array แนวนอน (คั่นด้วย Comma แปลว่าคนละ Column)
  • เลย TRANSPOSE ได้ {1;1;1} ซึ่งเป็น Array แนวตั้ง (คั่นด้วย Semi-Colon)
  • จากนั้นมันก็คืออันเดียวกับ F2:F4 ที่เราเขียนแบบ Manual นั่นแหละ

ต่อไปมาหาผลรวมแต่ละคอลัมน์บ้าง

ถ้าคิดในทำนองเดียวกันกับอันแรก จะได้ผลลัพธ์เป็น 1 แถวx 3คอลัมน์ มันก็ต้องมี Matrix 1 x 4 มาคูณด้วยข้อมูลต้นฉบับของเรา และมันก็ต้องเป็นเลข 1 หมดเลยด้วย เพราะเราเอาทุกค่าคือ 1*10 + 1*30 + 1*70 +1*30

และสูตรก็คือ

=MMULT(A8:D8,F2:H5)
เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 6

และถ้าไม่อยากมาพิมพ์ Matrix 1×4 ที่เป็นเลข 1 ทดไว้ ก็สามารถสร้าง Matrix จำลองในลักษณะคล้ายๆ เดิมได้ว่า

=MMULT(TRANSPOSE(ROW(F2:H5)^0),F2:H5)

เพียงแต่เปลี่ยนมาเอาจำนวนแถวของ Matrix Original มาทำให้เป็น 1 ทั้งหมด แล้ว Transpose มาเป็นแนวนอน

เล่นกับ Matrix ใน Excel ตอนที่ 2 : สรุปข้อมูล Total แต่ละแกน 7

และนี่ก็เป็นการใช้ Matrix เริ่มมาประยุกต์ทำอะไรที่เกี่ยวกับ Excel โดยตรงมากขึ้น ตอนหน้าจะเริ่มน่าสนใจมากขึ้นแล้ว เช่น ใช้ Matrix ช่วยหาข้อมูลในหลายๆ คอลัมน์เป็นต้น ว่าข้อมูลที่ต้องการอยู่ในแถวไหนบ้าง ^^

แชร์ความรู้ให้เพื่อนๆ ของคุณ
  • 219
  •  
  •  
  •  
  •  
  • 219
  •  
  •  
  •  
  •  
Sira Ekabut
the authorSira Ekabut
• Microsoft Office Specialist : Excel ระดับ Expert • ก่อตั้งเว็บไซต์และ แฟนเพจเทพเอ็กเซล คนติดตาม 8 หมื่นคน+, คลิปวีดีโอ 1 ล้าน Views + • หนังสือ Best Seller คอมพิวเตอร์ : Excel Level Up! , จอมเวท เทพ Excel , Excel Power Up!วิทยากรใน SkillLane.com คอร์สออนไลน์ชั้นนำ / อบรม Excel ให้บริษัทชั้นนำ

Leave a Reply