15 ส.ค. 2023 เวลา 05:05 • ไอที & แก็ดเจ็ต

รู้จักกับ function 'MAP' ใน google sheet

ฟังก์ชัน MAP เป็นฟังก์ชันที่เป็นสูตร array โดยใช้จับคู่ชุดข้อมูลอย่างน้อย 1 ชุด ดำเนินการโดยสูตรเหมือน ๆ กันไปกับข้อมูลที่ละค่า เรียงไปตั้งแต่ค่าแรกถึงค่าสุดท้าย โดยใช้ฟังก์ชัน LAMBDA เป็นตัวกำหนดสูตร
ไวยากรณ์
MAP(อาร์เรย์1, [อาร์เรย์2, …], lambda)
  • อาร์เรย์1 คือ ชุดข้อมูลแรก
  • [อาร์เรย์2, …] คือ ชุดข้อมูลที่ 2 เป็นต้นไป ไม่จำเป็นต้องมี
  • lambda คือ สูตรฟังก์ชัน LAMBDA
(รู้จักกับ function 'LAMBDA' https://www.blockdit.com/posts/64d90d48a9c2bdf361303fb9)
ตัวอย่าง
=MAP(A1:A10,LAMBDA(x,x*2))
กำหนดตัวแปร x เป็น A1:A10 แล้วดำเนินการหาค่า x*2 ทีละตัว
ภาพที่ 1
=MAP(A1:A10,B1:B10,LAMBDA(x,y,MAX(x,y)))
กำหนดตัวแปร x เป็น A1:A10 และ y เป็น B1:B10 แล้วดำเนินการหาค่า MAX(x,y) ทีละคู่
ภาพที่ 2
กำหนดชื่อรูปสามเหลี่ยมและความยาวด้านของรูปสามเหลี่ยมแต่ละรูปดังภาพ
ภาพที่ 3
ต้องการตรวจสอบว่า ด้านทั้ง 3 ที่กำหนดให้ในแต่ละรูป มีรูปใดบ้างที่สามารถนำมาสร้างรูปสามเหลี่ยมได้จริง
แนวคิดคือ ความยาวด้าน 2 ด้านใด ๆ รวมกัน จะต้องมากกว่าความยาวด้านที่เหลือ
ดังนั้นเราจะตรวจสอบโดยใช้ฟังก์ชัน MAP กำหนด Side 1, Side 2 และ Side 3 เป็นตัวแปร x, y และ z ตามลำดับ ซึ่งเงื่อนไขการตรวจสอบก็คือ x+y>z, y+z>x และ z+x>y
ในเบื้องต้น เราจะหาเพียงรูป T1 ก่อนจึงได้สูตรคือ
=MAP(B2,C2,D2,LAMBDA(x,y,z,AND(x+y>z,y+z>x,z+x>y)))
ภาพที่ 4
ในสูตรข้างต้น x = 53, y = 29 และ z = 22
จึงได้ AND(x+y>z,y+z>x,z+x>y)
➜ AND(53+29>22, 29+22>53, 22+53>29)
➜ AND(82>22, 51>53, 75>29)
➜ AND(TRUE,FALSE,TRUE)
➜ FALSE
เหตุว่าการตรวจสอบค่าความจริงของ AND พบว่าค่าความจริงที่สองคือ 51>53 มีค่าความจริงเป็นเท็จ ผลจึงออกมาเป็น FALSE
ทีนี้ให้เราปรับสูตร จาก B2 ➜ B2:B10, C2 ➜ C2:C10 และ D2 ➜ D2:D10 เพื่อให้ฟังก์ชัน MAP ดำเนินการไปเช่นนี้ทุกคู่ จะได้สูตรเป็น
=MAP(B2:B10,C2:C10,D2:D10,LAMBDA(x,y,z,AND(x+y>z,y+z>x,z+x>y)))
ภาพที่ 5
จากนั้นก็ใช้ FILTER กรองชื่อรูปสามเหลี่ยม A2:A10 โดยใช้ค่าความจริงที่พึ่งสร้างมา ได้สูตรคือ
=FILTER(A2:A10,MAP(B2:B10,C2:C10,D2:D10,LAMBDA(x,y,z,AND(x+y>z,y+z>x,z+x>y))))
ภาพที่ 6
ดังนั้น จากความยาวด้านที่กำหนด รูปสามเหลี่ยมที่สามารถนำไปสร้างได้จริงคือ T3, T6, T8 และ T9
หากเห็นว่าบทความนี้เป็นประโยชน์ ช่วยแชร์เพื่อเป็นกำลังใจให้เราด้วยนะฮับ
โฆษณา