TLDR สรุปสั้นๆ
SCAN ใช้แสกนและคำนวณค่าภายใน array ด้วยฟังก์ชัน lambda ตามที่กำหนด.
คำอธิบาย
ฟังก์ชัน SCAN เป็นฟังก์ชันที่ใช้ในการแสกนค่าภายในอาร์เรย์โดยการประยุกต์ฟังก์ชันกำหนดเอง (LAMBDA) ไปยังแต่ละค่าและสร้างอาร์เรย์ที่มีค่าระหว่างทุกค่าออกมา อย่างเช่น การคำนวณสะสมจากค่าเริ่มต้น ไปจนถึงค่าท้ายในอาร์เรย์
มีครั้งแรกในเวอร์ชันไหน
365
รูปแบบคำสั่ง (Syntax)
=SCAN([initial_value], array, lambda(accumulator, value, body))
Arguments
-
initial_value (Optional – any)
ตั้งค่าตัวเริ่มต้นสำหรับตัวสะสม หากทำงานกับข้อความ ควรตั้งค่าเริ่มต้นให้เป็น “” (ว่างเปล่า) -
array (Required – array)
อาร์เรย์ที่จะถูกแสกน -
lambda (Required – LAMBDA)
lambda ฟังก์ชันที่ใช้ในการทยอยลดอาร์เรย์ ฟังก์ชันนี้รับ 3 parameter: accumulator, value, และ body
ตัวอย่างการใช้งาน (Examples)
-
Formula:
Description: คำนวณแฟกทอเรียลของค่าภายในอาร์เรย์ A1:C2=SCAN(1, A1:C2, LAMBDA(a,b,a*b))
Result:แสดงอาร์เรย์ใหม่ที่เก็บค่าแฟกทอเรียลที่แสกนจากอาร์เรย์เดิม -
Formula:
Description: เชื่อมข้อความจากค่าภายในอาร์เรย์ A1:C2=SCAN("", A1:C2, LAMBDA(a,b,a&b))
Result:แสดงข้อความที่ถูกเชื่อมกันจากอาร์เรย์เดิม -
Formula:
Description: สะสมผลรวมจากอาร์เรย์ {1,2,3,4} โดยเริ่มที่ 0=SCAN(0,{1,2,3,4},LAMBDA(sum,x,sum+x))
Result:แสดงอาร์เรย์ {1,3,6,10} ที่เป็นผลรวมสะสม -
Formula:
Description: คำนวณการคูณสะสมจากอาร์เรย์ {1,2,3} โดยเริ่มที่ 10=SCAN(10,{1,2,3},LAMBDA(a,b,a*b))
Result:แสดงอาร์เรย์ {10,20,60} เป็นค่าที่คูณสะสม -
Formula:
Description: คำนวณการคูณสะสมโดยเริ่มจาก 1=SCAN(1,{2,3,4},LAMBDA(prod,x,prod*x))
Result:แสดงอาร์เรย์ {2,6,24} คำนวณจากการคูณสะสม
Tips & Tricks
– ฟังก์ชัน SCAN สามารถใช้ควบคู่กับฟังก์ชัน LAMBDA เพื่อสร้างการคำนวณเฉพาะที่ซับซ้อนตามความต้องการของคุณเอง. – ให้ความสำคัญกับค่า initial_value ในกรณีที่ทำงานกับข้อความหรือการคำนวณสะสมต่าง ๆ.
ข้อควรระวัง (Cautions)
ต้องระวังเมื่อใช้ lambda ที่ซับซ้อนเกินไป อาจจะทำให้เกิดข้อผิดพลาดในการคำนวน และต้องมั่นใจว่าให้ค่า parameter ที่ถูกต้อง ไม่เช่นนั้นอาจเกิดค่า #VALUE! error ได้.
ฟังก์ชันที่เกี่ยวข้อง
References
ขอบคุณที่เข้ามาอ่านนะครับ ❤️
Leave a Reply