Google อัพเดท 10 ฟีเจอร์ใหม่ของ Google Sheets (คือ copy Microsoft Excel หมายถึงได้แรงบันดาลใจ แซว 555+) แอดลองเล่นแล้วนี่คือมิติใหม่ของการใช้ Spreadsheets ทำงานเลย
Table of Contents
Google Sheets เป็นมากกว่าแค่ Spreadsheets แต่เป็น Programming Language ย่อยๆที่โฟกัสที่การทำงานกับ dataset เราสามารถประกาศตัวแปรได้ด้วย named range
และล่าสุดเขียน function ไว้ใช้งานเองด้วยฟีเจอร์ named function
New Features
- Named Function เขียน function ไว้ใช้งานเองได้แล้ว 🤩
- XLOOKUP
- XMATCH
- LAMBDA
- MAP
- REDUCE
- MAKEARRAY
- SCAN
- BYROW
- BYCOL
- New Data Connectors ต่อตรงไปที่ Google BigQuery
อ่านอัพเดท Google Sheets อย่างเป็นทางการได้ที่ blog Google Workspace Updates สำหรับการ rollout features ใหม่จะใช้เวลาประมาณสองสัปดาห์ แอดคิดว่าทุกคนน่าจะใช้ functions ใหม่ได้ภายในเดือน ก.ย. นี้
บทความนี้แอดจะเขียนรีวิวสั้นๆ ความสามารถใหม่ของ Sheets ให้ลองอ่านกัน มาลุยกันเลยครับ
LAMBDA
ส่วนตัวแอดยกให้ LAMBDA
เป็น game changer ใน spreadsheets tools เลย เหมือนเราเขียน custom + anonymous function (ฟังก์ชันแบบไม่มีชื่อ) ไว้ใช้งานแบบเร็วๆ เช่น
=LAMBDA(x, x * 2)(250)
=LAMBDA(temp, (5/9)*(temp-32))(90)
Lambda function 1 เรารับ input x
และส่ง output x*2
ลอง test กับ new input 250
ถ้าเรากดรันก็จะได้ 500
เป็นผลลัพธ์กลับมา ส่วน lambda function 2 ใช้เปลี่ยนอุณหภูมิจาก Fahrenheit -> Celsius
MAP & REDUCE
Functions MAP()
กับ REDUCE()
ยืมมาจาก programming concept เลย อันนี้ทีเด็ด 555+
- Map a function to a list of values
- Reduce list of values to a [single] value
ถ้าใครเขียน code เป็นอยู่แล้ว concept ของ map/ reduce น่าจะเข้าใจได้ไม่ยาก ภาษายอดนิยมอย่าง JavaScript และ Python ก็มี native functions พวกนี้ให้ใช้งานเลย
อธิบายเป็นภาษาคนง่ายๆ (non-programmer) map คือการใช้ฟังก์ชันสร้าง array ใหม่ ส่วน reduce ใช้ลดรูป array เดิมเป็นค่าๆหนึ่งที่เราต้องการ เช่น การหาผลรวม sum ในตัวอย่างด้านล่าง
# MAP example
=MAP(A1:A10, LAMBDA(friend, CONCATENATE("Hello ", friend)))
# REDUCE example
=REDUCE(0, B1:B10, LAMBDA(salary, value, salary+value))
ส่วนตัวแอดคิดว่าในแง่ use cases น่าจะได้ใช้ MAP
บ่อยกว่า REDUCE
เอาไว้ Google เปิดให้เล่นฟังก์ชันนี้เมื่อไหร่ แอดมาเขียนรีวิวการใช้งานให้อ่านอีกทีนะครับ 😆
XLOOKUP
Excel เปิดตัว XLOOKUP()
มาหลายปีแล้ว วันนี้ถึงคิวของ Sheets ซักที โดย XLOOKUP เกิดมาเพื่อใช้แทน VLOOKUP ได้เลย i.e. เหมือนเป็น flexible vlookup function
ความแตกต่างหลักๆคือใช้งานง่ายกว่า VLOOKUP
สามารถจัดการ missing value ได้ด้วย เวลาหาค่าไม่เจอ ถ้าเป็น VLOOKUP จะส่งค่า error #N/A
กลับมา
=XLOOKUP(search_key, lookup_range, result_range, [optional parameters])
=XLOOKUP("Jisoo", A1:A10, B1:B10)
ตัวอย่างนี้อ่านเป็นภาษาไทยได้ว่าจงหาชื่อ Jisoo
ในคอลัมน์ A1:A10
ถ้าเจอ match ให้ส่งค่าในคอลัมน์ B1:B10
กลับมา ได้ผลลัพธ์เหมือนเขียน VLOOKUP("Jisoo", A1:B10, 2, FALSE)
BYROW & BYCOL
BYROW()
และ BYCOL()
คือการ apply function ไปตาม row และ column ในตารางข้อมูล ถ้าเราเขียนโปรแกรมใน R, Python ก็เหมือนการเขียน loop
วิ่งทีละแถวหรือทีละคอลัมน์เพื่อหาค่าที่เราต้องการ
ตัวอย่างการเขียน loop หาค่าเฉลี่ยทุกคอลัมน์ใน R
# example loop in R
for (i in 1:ncol(data)) {
avg_col <- mean(data[[i]])
print(avg_col)
}
มาลองดูตัวอย่าง BYCOL
ใน Google Sheets กันบ้าง สมมติเรามีข้อมูลอยู่ใน range A1:D10
=BYCOL(A1:D10, LAMBDA(col, AVERAGE(col)) )
Formula ใน sheets สั้นกว่าเยอะเลยแต่ได้ผลเหมือนกัน ทำไมมันง่ายอย่างนี้ 555+ ไม่ต้องเขียน loop ให้เมื่อยมือ ใช้คู่กับ lambda หรือ named function สบายๆ
Named Functions
ถ้าเราต้องการสร้าง function ไว้ใช้เองใน Google Sheets สมัยก่อนเราต้องเปิดหน้าต่าง script ขึ้นมา แล้วเขียน Apps Script เอง (ภาษาคล้ายๆ JavaScript) ซึ่งใช้เวลาพอสมควร แต่วันนี้เราสร้าง named function ได้ง่ายๆแล้วที่เมนู Data
อยากใช้แล้ว 555+
อันนี้แอดก็รู้สึก wow ไม่แพ้ฟีเจอร์ใหม่อื่นๆเลย เพราะเรายืม named function concept มาจากโลก programming (อีกแล้ว 555+) ง่ายจนงง ลองเปรียบเทียบโค้ด python vs. sheets ด้านล่าง
# example python function
def hello(name):
return "Hello " + name
ถ้าเราอยากจะสร้าง function นี้ใน sheets แค่ไปที่เมนู Data
> Named functions
และประกาศ function ใหม่ได้เลย ทำไมมันง่ายอย่างนี้
Function Name: HELLO
Function Description/ About: say Hello to a user
Argument Placeholders: name
Example: HELLO("Lisa")
ตัวอย่าง named function CONTAINS(cell, range)
จาก Google Sheets document พอเราประกาศ function เสร็จแล้วก็เรียกใช้งานมันได้เหมือน function ทั่วไปเลย
Formula ที่เราเคยเขียนสมัยก่อนแบบยาวๆ สามารถ abstract มันเป็น name function แบบที่เราต้องการได้เลย ใช้ร่วมกับ MAP
, REDUCE
, BYROW
, BYCOL
ได้ด้วย ไม่อยากจะคิด สุดต๊าซ 555+
Connect to BigQuery
ฟีเจอร์สุดท้าย จริงๆเปิดตัวมาซักระยะแล้ว แอดว่ามีประโยชน์อย่างมากสำหรับคนทำงานสาย data
Google Sheets เพิ่มฟีเจอร์ Data Connectors
ให้เราต่อไปที่ BigQuery
(Cloud Data Warehouse) ได้แล้ว แปลว่าเราสามารถดึงข้อมูลหลายล้าน records มาทำ pivot table/ report ผ่าน Google Sheets ได้เลย แบบไม่ต้องเขียน SQL group by + aggregate ให้ยุ่งยาก

เราสามารถเขียน SQL
เพื่อ extract ข้อมูลบางส่วนมาเก็บไว้ใน Google Sheets ได้ แต่ limitation ของ Sheets ตอนนี้จะเก็บข้อมูลได้ 10 ล้าน cells (เพิ่มจาก 5 ล้าน ตอนเดือน มี.ค. 2022 ที่ผ่านมา – ที่มา Google)
สมัยก่อนเหมือนฟีเจอร์นี้จะใช้ได้แค่ Workspace Users เท่านั้น แต่ตอนนี้แค่มี google account ก็ใช้ได้เลย ต้องเขียนบทความมาสอนใช้งานฟีเจอร์นี้แล้ว 555+
Ben Collins
ไม่อยากพลาดอัพเดทฟีเจอร์ใหม่ๆใน Google Sheets? ต้องกด follow อาจารย์ Ben Collins ไว้เลย

แอดติดตามอาจารย์ Ben Collins (Google Developer Experts) บน Twitter แกสอน Google Sheets กับ AppSheet ได้โหดมาก แอดเคยลองคอร์สเรียนกับแกด้วย สำหรับประเทศไทยมีราคาพิเศษ (Purchasing Power Parity – PPP) ใครสนใจลองส่ง email ไปทัก อ. Ben ได้นะครับ 😁
Read More
อ่านข้อมูลเพิ่มเติมเกี่ยวกับ functions ใหม่ได้ที่ links นี้นะครับ ใครลองใช้งานแล้วเป็นยังไงบ้าง มาพูดคุยกันได้บนเพจ DataRockie นะครับ