Overview
Course Curriculum & Core Modules
โครงสร้างเนื้อหาและองค์ความรู้สำคัญตลอดบทเรียน 4 หัวข้อหลัก
01. Formula Anatomy
Equal sign, function keywords, parentheses, and argument rules.
โครงสร้างสูตรและการประมวลผล
02. Dimensions & Metrics
Qualitative slice attributes vs. quantifiable statistical measurements.
มิติข้อมูลและตัวชี้วัดเชิงปริมาณ
03. Data Types
Numbers, formatted strings, serial dates, and boolean logic flags.
ชนิดข้อมูลและการเก็บค่าในเซลล์
04. Ranges & Tables
Addressing modes, Named Ranges, and modern Google Data Tables.
การตั้งชื่อช่วงและโครงสร้างตาราง
Course Index
Master Slide Index & Page Guide
สารบัญหน้าสไลด์ทั้งหมด เพื่อความสะดวกในการเปิดไปยังหัวข้อที่ต้องการเรียนรู้
Anatomy, Syntax, Dimensions, Metrics, Aggregations.
Number, Text, Date, Boolean, Arrays, Errors, Chips.
Data Range, Named Range, Tables, Dynamic Comparison.
VLOOKUP, XLOOKUP Left-Lookup, INDEX & MATCH precision.
FILTER, QUERY Group by, VSTACK/HSTACK, TOCOL, Regex.
SUMIFS, IFERROR, LAMBDA, LET, MAP, E-Com & Warehouse tests.
Formulas
Anatomy of a Google Sheets Formula
ส่วนประกอบพื้นฐานของสูตรคำนวณ: เครื่องหมายเท่ากับ ฟังก์ชัน และอาร์กิวเมนต์
Assignment Trigger: Tells Sheets calculation begins (จุดเริ่มต้นการคำนวณ)
Function Keyword: Built-in calculation engine (ชื่อฟังก์ชันมาตรฐาน)
Arguments: Target ranges, criteria, conditions (พารามิเตอร์และเงื่อนไข)
Syntax Rules
Critical Formula Syntax & Separators
กฎเกณฑ์สัญลักษณ์ตัวคั่น และรูปแบบการอ้างอิงที่ต้องจำขึ้นใจ
Comma Separator
Separates individual arguments inside functions.
คั่นระหว่างอาร์กิวเมนต์ในสูตร
Colon Range
Defines contiguous cell boundaries start to end.
ระบุช่วงเซลล์ต่อเนื่อง (A1:B10)
Dollar Anchor
Fixes row or column coordinates when dragging.
ตรึงตำแหน่งเซลล์ไม่ให้เลื่อน ($A$1)
Text Quotes
Encloses string literals to prevent name collisions.
ครอบข้อความเพื่อป้องกัน error
Data Modeling
Dimensions vs. Measurements (Metrics)
การจำแนกความแตกต่างระหว่างมิติข้อมูล (คุณภาพ) และตัวชี้วัด (ปริมาณ)
Qualitative Attributes
Categories used to slice, dice, and group data:
- Customer Region: Bangkok, Chiang Mai, Phuket
- Product Category: Electronics, Office Supplies
- Transaction Date: 2026-09-20
- Employee Department: Engineering, Sales, HR
มิติเชิงคุณภาพ ใช้จัดกลุ่ม แจกแจง และแบ่งย่อยข้อมูลสำหรับวิเคราะห์
Quantitative Numbers
Numerical figures you aggregate and compute:
- Total Revenue: ฿1,250,000
- Units Sold: 4,200 items
- Discount Amount: ฿12,400
- Profit Margin: 24.5%
ค่าตัวเลขทางคณิตศาสตร์ สามารถบวก ลบ คูณ หาร และหาค่าเฉลี่ยได้
Dimensions
Working with Dimensions in Formulas
ฟังก์ชันที่ใช้จัดการกับมิติข้อมูล: การแจงค่าไม่ซ้ำ การนับความถี่ และการกรอง
Extracts distinct categories (ดึงค่าที่ไม่ซ้ำกัน)
Counts frequency by dimension (นับจำนวนรายการตามมิติ)
Segments dataset by group (กรองข้อมูลตามกลุ่ม)
Measurements
Aggregating Measurements & Metrics
สูตรคำนวณและสรุปผลตัวเลขเชิงสถิติที่พบบ่อย
| Formula Syntax & Copy | Operational Purpose | Thai Description | Example Output |
|---|---|---|---|
=SUM(D2:D50)
|
Total sum of numeric items | หาผลรวมตัวเลขทั้งหมด | ฿441,000 |
=AVERAGE(D2:D50)
|
Arithmetic mean calculation | หาค่าเฉลี่ยทางคณิตศาสตร์ | ฿9,000 |
=MAX(D2:D50)
|
Highest numerical ceiling | หาค่าตัวเลขที่สูงที่สุด | ฿24,500 |
=COUNT(D2:D50)
|
Tallies cells containing numbers | นับจำนวนเซลล์ที่มีเฉพาะตัวเลข | ไม่เกิน 49 เซลล์ตัวเลข |
Data Foundation
The Four Fundamental Data Types
ชนิดข้อมูลพื้นฐาน 4 ประเภทที่ประมวลผลบนสเปรดชีต
Number
Aligns Right
ตัวเลข ทศนิยม และเปอร์เซ็นต์คำนวณทางคณิตศาสตร์
Text (String)
Aligns Left
ตัวอักษร ข้อความ รหัสสินค้า และตัวเลขที่เป็นข้อความ
Date & Time
Serial number + time fraction
วันและเวลา ในรูปแบบเลขลำดับนับต่อจากอดีต
Boolean
Aligns Center
ค่าทางตรรกศาสตร์ จริง หรือ เท็จ สำหรับเงื่อนไข IF
Data Types
Number Type: Raw Values vs. Display Formats
ทำความเข้าใจระหว่างค่าดิบ (Raw Value) และรูปแบบการแสดงผล (Format)
The Golden Principle
Formatting only changes the visual presentation, not the underlying number.
การจัดฟอร์แมตเปลี่ยนเฉพาะสิ่งที่สายตาเห็น แต่ค่าจริงที่สูตรนำไปคำนวณยังคงเดิม
Helpful Number Functions
Data Types
Text Type: Strings & Text Cleaning Functions
การจัดการข้อความ การเชื่อมคำ และการทำความสะอาดข้อมูลตัวอักษร
Concatenate Strings
=A1 & " " & B1
Merges first and last names together with space.
เชื่อมต่อข้อความเข้าด้วยกัน
Trim Whitespace
=TRIM(A1)
Removes accidental leading and trailing spaces.
ลบช่องว่างส่วนเกินหัวท้าย ป้องกัน lookup หาไม่เจอ
Substring Extraction
=LEFT(A1, 4)
Extracts first 4 characters (e.g. "SKU-").
ตัดตัวอักษรเฉพาะส่วนหน้า หรือส่วนท้ายด้วย RIGHT()
Data Types
Date & Time: Serial Number Mechanics
เบื้องหลังข้อมูลวันที่: ทุกวันคือตัวเลขจำนวนเต็มที่นับต่อจากอดีต
Dates are Integers Behind the Scenes
In Google Sheets, Day 1 is December 31, 1899. Adding 1 to a date increases it by exactly one day. Time is stored as decimals (0.5 = 12:00 noon).
วันที่จะถูกแปลงเป็นตัวเลขเสมอ ทำให้เราสามารถบวก/ลบจำนวนวันได้โดยตรง
Essential Date Functions
Data Types
Boolean Logic: Conditional Decision Making
การควบคุมตรรกะการตัดสินใจด้วยค่าความจริง TRUE และ FALSE
IF Branching
=IF(C2>=50, "Pass", "Fail")
Executes branch condition based on TRUE or FALSE.
กำหนดผลลัพธ์ตามเกณฑ์ ผ่าน/ไม่ผ่าน
AND Gate
=AND(A2>18, B2="TH")
Requires ALL evaluated criteria to be TRUE simultaneously.
จริงเมื่อทุกเงื่อนไขถูกต้องพร้อมกัน
OR Gate
=OR(A2="VIP", B2>10000)
Returns TRUE if ANY single criteria evaluates TRUE.
จริงเมื่อมีเงื่อนไขใดเงื่อนไขหนึ่งตรงตามเกณฑ์
Operations
Operations & Behaviors by Data Type
การดำเนินการ ตัวดำเนินการ (Operators) และพฤติกรรมผลลัพธ์ของแต่ละชนิดข้อมูล
Number
Arithmetic (+, -, *, /, ^)
ผลลัพธ์: ค่าตัวเลข (Number)
Text
Concatenation (&, <>, =)
ผลลัพธ์: ข้อความ (String)
Date
Temporal (+, - Days)
ผลลัพธ์: วันที่ หรือ จำนวนวัน
Boolean
Relational (>, <, >=)
ผลลัพธ์: ค่าจริง/เท็จ (Boolean)
Advanced Data Types
Beyond Basics: Extended Data Types
ชนิดข้อมูลขั้นสูงและประเภทพิเศษเพิ่มเติมที่พบบ่อยในการทำงานจริง
Array / Matrix
={A1:B2; C1:D2}
ส่งคืนค่าแบบกระจายหลายช่อง (Dynamic Spill)
Hyperlink
=HYPERLINK(url, name)
ข้อความฝังลิงก์ปลายทางคลิกเปิดได้ทันที
Error Types
#N/A, #VALUE!, #REF!
สถานะความผิดพลาด ดักจับด้วย =IFERROR()
Smart Chips
@People, @Files, @Events
เอนทิตีอัจฉริยะในระบบ Google Workspace
Data Structure
Understanding Data Range & Addressing
ขอบเขตข้อมูล (Data Range) และรูปแบบการอ้างอิงตำแหน่งในตาราง
Bounded rectangular block of 20 cells (ช่วงสี่เหลี่ยมระบุหัวท้ายชัดเจน)
Open-ended infinite range auto-expanding to bottom (ช่วงเปิดรับข้อมูลแถวใหม่เสมอ)
Cross-sheet reference using exclamation mark (การอ้างอิงข้ามชีทงาน)
Named Ranges
Defined Names: Enhancing Formula Readability
การตั้งชื่อช่วงเซลล์ (Named Ranges) เพื่อเพิ่มความเข้าใจและลดความผิดพลาด
Cryptic coordinates that are difficult to audit, decipher, and maintain across business teams.
การอ้างอิงพิกัดเซลล์แบบเดิม อ่านยาก และตรวจสอบสูตรลำบาก
Human-readable, self-documenting syntax. Works across all sheets without manual sheet prefix.
การตั้งชื่อสื่อความหมายชัดเจน สูตรเข้าใจง่ายและเป็นระเบียบ
Configuration
Step-by-Step: How to Set Up Named Ranges
ขั้นตอนการตั้งชื่อช่วงเซลล์ใน Google Sheets อย่างถูกต้อง
Select Cells
Highlight target cells (e.g. D2:D100).
ลากคลุมช่วงเซลล์ที่ต้องการ
Open Data Menu
Click Data > Named ranges.
เลือกเมนู ข้อมูล > ช่วงที่ตั้งชื่อ
Assign Identifier
Type clean name using underscores.
ตั้งชื่อห้ามมีเว้นวรรค (Tax_Rate)
Use in Formulas
Directly reference name in formulas.
พิมพ์ชื่อนั้นลงในสูตรคำนวณได้ทันที
Modern Tables
Google Sheets Modern Data Tables Feature
ฟีเจอร์ Data Tables ระบบตารางอัจฉริยะที่จัดการโครงสร้างอัตโนมัติ
Auto-Expanding Calculations
Table references ปรับช่วงตามข้อมูลที่เพิ่ม/ลบ ตรวจการเติมสูตรรายแถวแยกต่างหาก
Dedicated Column Types & Formatting
ตั้งชนิดข้อมูลรายคอลัมน์ เช่น วันที่หรือสกุลเงิน ระบบเตือนเมื่อข้อมูลไม่ตรงชนิด
Clean Structured Referencing
อ้างอิงชื่อคอลัมน์โดยตรงผ่านชื่อตาราง เช่น =SUM(SalesOrders[Amount])
Structured References
Table Naming & Structured Referencing
การตั้งชื่อ Data Table และการดึงข้อมูลรายคอลัมน์ผ่าน Formula Bar
Define Table: SalesOrders
แปลงตารางผ่าน Format > Convert to table ตั้งชื่อตารางว่า SalesOrders
คำนวณยอดรวมของคอลัมน์ [Amount] ทั้งหมดโดยไม่ต้องกังวลเรื่องเลขแถว
| OrderID | Category | Amount |
|---|---|---|
| SO-101 | Office Supplies | 14,400 |
| SO-102 | Electronics | 58,000 |
| SO-103 | Electronics | 145,000 |
| Calculated Total [Amount]: | ฿217,400 | |
Data Architecture
Static Datasets: Exact Referencing Modes
กรณีชุดข้อมูลคงที่ (ไม่มีการเพิ่ม/ลบแถว): รูปแบบการอ้างอิงของ Data Range, Named Range และ Data Table
Fixed Data Range
=SUM(D2:D10)
ช่วงพิกัดปิดหัวท้ายแน่นอน เหมาะกับตาราง Lookup คงที่
พิกัดแน่นอน ไม่กินทรัพยากรคำนวณเกินจำเป็น
Fixed Named Range
Tax_Rate = $B$1
ตั้งชื่อแทนพารามิเตอร์เดี่ยวหรือค่าคงที่ทางธุรกิจ
อ่านเข้าใจง่าย สื่อความหมายทางธุรกิจชัดเจน
Fixed Data Table
=SUM(Q1_Sales[Total])
ล็อกโครงสร้างหัวตารางและฟอร์แมตคอลัมน์อัตโนมัติ
ป้องกัน Header หลุด และฟอร์แมตผิดประเภท
Comparison Matrix
Dynamic Growth: Handling New Rows Without Editing Formulas
เปรียบเทียบผลกระทบเมื่อมีข้อมูลไหลเข้ามาใหม่เรื่อยๆ โดยที่ผู้ใช้ไม่ได้แก้ไขสูตรเดิม
| Referencing Method | Formula Written | When 50 New Rows Are Added... | Impact & Recommendation |
|---|---|---|---|
| Fixed Range | =SUM(D2:D10) | ข้อมูลใหม่แถว 11-60 ถูกละเลยตกหล่น | เสี่ยงคำนวณผิดพลาด ต้องคอยแก้มือขยายสูตรตลอด |
| Open-Ended Range | =SUM(D2:D) | รวมข้อมูลใหม่ลงมาถึงล่างสุดอัตโนมัติ | สูตรอัตโนมัติ แต่อย่าวางผลรวมใต้คอลัมน์เดียวกัน |
| Google Data Table | =SUM(Sales[Amount]) | ตารางขยายครอบคลุมแถวใหม่อัตโนมัติ | ช่วงอ้างอิงปรับตามตาราง ควรตรวจยอดรวมหลังเพิ่มข้อมูล |
Practical Test Dataset 01
Sheet: Sales_Data (แบบทดสอบยอดขาย)
การทำงานของสูตรใน Formula Bar การไฮไลต์ช่วงข้อมูล และผลลัพธ์ที่คำนวณได้จริง
| OrderID | Region (C) | Category | Sales_THB (F) |
|---|---|---|---|
| SO-101 | Bangkok ✓ | Office Supplies | 14,400 |
| SO-102 | Chiang Mai | Electronics | 58,000 |
| SO-103 | Bangkok ✓ | Electronics | 145,000 |
฿159,400
14,400 (Row 2) + 145,000 (Row 4) = ฿159,400
=SUM(Revenue_THB) ➔ ฿217,400
รวมยอดขายทุกแถวโดยไม่ต้องพิมพ์พิกัดเซลล์
Practical Test Dataset 02
Sheet: HR_Roster (แบบทดสอบฝ่ายบุคคล)
ชุดข้อมูลจำลองสำหรับทดสอบฟังก์ชันตรรกศาสตร์ วันที่ และการนับแบบมีเงื่อนไข
| EmpID | Full_Name | Department (Dim) | Hire_Date | Salary (Metric) | Is_Permanent |
|---|---|---|---|---|---|
| EMP-01 | Somchai Jaidee | Marketing | 2022-01-15 | 45,000 | TRUE |
| EMP-02 | Wichai Rakthai | Sales | 2024-06-01 | 38,000 | TRUE |
| EMP-03 | Nonglak Dee | Engineering | 2025-11-20 | 62,000 | FALSE |
1. นับพนักงานประจำ: =COUNTIF(F2:F, TRUE)
2. คำนวณอายุงานเป็นปี: =DATEDIF(D2, TODAY(), "Y")
Module 02 : Deep Dive
Google Sheets Function Mastery & Practical Workshops
เจาะลึกฟังก์ชันยอดนิยม 6 หมวดหมู่ พร้อมภาพจำลอง Formula Bar และชุดข้อมูลทดลองทำจริง
Function Architecture
Anatomy of a Function & Arguments
โครงสร้างองค์ประกอบของฟังก์ชัน: ชื่อฟังก์ชัน, วงเล็บ, และประเภทของอาร์กิวเมนต์
1. Required Arguments: ค่าหรือพิกัดที่ต้องใส่เสมอ
2. Optional in [ ]: ค่าทางเลือก หากไม่ใส่จะใช้ค่าเริ่มต้น
3. Comma Delimiter: คั่นแยกแต่ละอาร์กิวเมนต์
Formula Helper (F1)
เมื่อพิมพ์ =FUNCTION( Google Sheets จะแสดงกล่องช่วยสอน ให้กดปุ่ม F1 เพื่อดูตัวอย่างและคำอธิบายพารามิเตอร์แบบ Real-time
แถบตัวช่วยจะไฮไลต์พารามิเตอร์ที่กำลังพิมพ์อยู่เสมอ
Curriculum Map
Core Function Categories for Business Analysts
หมวดหมู่ฟังก์ชันสำคัญที่จะได้เรียนรู้และฝึกปฏิบัติจริงในเวิร์กชอปนี้
1. Lookup & Ref
VLOOKUP, XLOOKUP, INDEX, MATCH
ค้นหาและเชื่อมโยงข้อมูลข้ามตาราง
2. Filtering
FILTER, QUERY, UNIQUE, SORT
คัดกรองและประมวลผลคำสั่งคล้าย SQL
3. Reshaping
VSTACK, HSTACK, TOCOL, TOROW
ต่อรวมตารางและแปลงมิติข้อมูล
4. Regex Logic
REGEXMATCH, REGEXEXTRACT, REGEXREPLACE
สกัดคำและล้างข้อมูลข้อความซับซ้อน
Lookup Functions
VLOOKUP: Vertical Table Lookup
การค้นหาข้อมูลในแนวตั้งจากคอลัมน์ซ้ายสุดเพื่อดึงค่าในคอลัมน์เป้าหมาย
search_key: ค่าที่ต้องการค้นหา (เช่น A2)
range: ตารางอ้างอิง คอลัมน์แรกต้องมี search_key เสมอ
index: ลำดับเลขคอลัมน์ที่ต้องการดึงค่ากลับมา (1, 2, 3...)
is_sorted: ใส่ FALSE หรือ 0 เสมอเพื่อหาแบบตรงกันเป๊ะ
ข้อควรระวัง
- ดึงข้อมูลไปทางซ้ายไม่ได้
- แทรกคอลัมน์แล้วเลข index จะเพี้ยน
- ลืมใส่ FALSE อาจได้คำตอบผิด
Practical Workshop
VLOOKUP in Action: Student Exercise
ภาพจำลองการใช้สูตรดึงชื่อสินค้าและราคาจากตารางรหัสสินค้า Master Table
| A (Col 1) | B (Col 2 - Target) | C (Price) | Result (G2) |
|---|---|---|---|
| SKU-01 | Mechanical Keyboard | ฿2,500 | Ergonomic Mouse |
| SKU-02 ✓ | Ergonomic Mouse | ฿1,200 |
การทำงาน:
1. ค้นหาค่า "SKU-02" ในคอลัมน์แรก (A)
2. เมื่อพบในแถวที่ 2 จะดึงค่าในคอลัมน์ที่ 2 (B) มาแสดงผลได้ "Ergonomic Mouse"
Lookup Functions
XLOOKUP: The Next-Gen Lookup Standard
ค้นหาทางซ้ายหรือขวาได้ โดยแยกช่วงค้นหาและช่วงผลลัพธ์ให้มีขนาดสอดคล้องกัน
search_key: ค่าที่ต้องการค้นหา
lookup_range: คอลัมน์ที่เก็บค่าค้นหา (คอลัมน์เดี่ยว)
result_range: คอลัมน์ผลลัพธ์ (อยู่ซ้ายหรือขวาก็ได้!)
missing_val: ค่าที่แสดงหากหาไม่เจอ เช่น "Not Found"
- ค้นหาย้อนกลับไปทางซ้ายได้ (Left Lookup)
- ไม่ต้องนับ index แทรกคอลัมน์สูตรไม่พัง
- ค่าเริ่มต้นคือ Exact Match อัตโนมัติ
- มีดักจับ Error ในตัว
Practical Workshop
XLOOKUP Left-Lookup Demonstration
ตัวอย่างการค้นหาข้อมูลแบบดึงค่ากลับมาทางซ้าย (สิ่งที่ VLOOKUP ทำไม่ได้)
| A (Target Left) ⬅ | B (Lookup Key) | Email Input | EmpID Output |
|---|---|---|---|
| EMP-102 ✓ | wichai@co.th | wichai@co.th | EMP-102 |
พลังของ Left Lookup:
เรามี Email ในคอลัมน์ B แต่อยากได้รหัส EmpID ในคอลัมน์ A ซึ่งอยู่ทางซ้ายมือ XLOOKUP สามารถดึงข้ามมาทางซ้ายได้ทันทีโดยไม่ต้องย้ายตำแหน่งคอลัมน์จริง
Lookup Functions
INDEX & MATCH: The Flexible Architecture
คู่หูฟังก์ชันพิกัดเมทริกซ์ 2 มิติที่ทำงานได้รวดเร็วและรองรับตารางข้อมูลขนาดใหญ่
1. INDEX(range, row, [col])
ระบุพิกัดแถวและคอลัมน์ เพื่อดึงข้อมูล ณ จุดตัดนั้นกลับมา
2. MATCH(search_key, range, 0)
ค้นหาค่าและคืนผลลัพธ์เป็น "ลำดับเลขที่แถว" ที่พบข้อมูล
Practical Workshop
INDEX + MATCH Combined in Action
การประกอบร่าง: MATCH หาเลขแถว แล้วส่งต่อให้ INDEX ดึงข้อมูลที่ต้องการ
| A (Match Range) | B (Name) | C (Salary) | Result |
|---|---|---|---|
| ID-03 (Row 3) ✓ | Nonglak | ฿55,000 | ฿55,000 |
1. MATCH("ID-03", A2:A5, 0) ได้ผลลัพธ์เป็นแถวที่ 3
2. INDEX นำเลข 3 ไปดึงค่าใน C2:C5 ได้เงินเดือน ฿55,000
Filtering Functions
FILTER: Dynamic In-Sheet Data Slicing
การกรองข้อมูลแบบไดนามิกที่ดึงหลายแถวและหลายคอลัมน์ออกมาแสดงผลพร้อมกัน
range: ช่วงข้อมูลต้นทางที่ต้องการกรอง (A2:D100)
condition1: เงื่อนไขแบบ Boolean เช่น C2:C100 = "Completed"
Multiple: คั่นด้วยคอมมา (AND) หรือเครื่องหมาย + (OR)
Spill Behavior
พิมพ์สูตรเพียงเซลล์เดียวที่มุมซ้ายบน ผลลัพธ์จะกระจาย (Spill) ออกมาเต็มพื้นที่อัตโนมัติ ห้ามมีข้อมูลอื่นขวางทางเดินมิฉะนั้นจะขึ้น #REF!
ข้อมูลต้นทางเปลี่ยน ตารางผลลัพธ์จะอัปเดตตามทันที
Practical Workshop
FILTER with Multiple Conditions
การทดลองกรองออเดอร์ยอดขายเฉพาะโซน Bangkok ที่มียอดเงินมากกว่า 50,000 บาท
| OrderID | Region | Amount (THB) |
|---|---|---|
| SO-103 | Bangkok | ฿145,000 |
Condition Filtering:
SO-101 ถูกตัดออกเพราะ Amount ไม่ถึง 50,000
SO-102 ถูกตัดออกเพราะ Region คือ Chiang Mai
ผลลัพธ์จึงได้เฉพาะแถว SO-103 ที่ตรงครบทั้ง 2 เงื่อนไข
Advanced Querying
QUERY: SQL-Like Data Manipulation
ฟังก์ชันที่ทรงพลังที่สุดใน Google Sheets ด้วยคำสั่งประมวลผลคล้ายภาษา SQL
SELECT: ระบุคอลัมน์ที่ต้องการเลือก (SELECT A, B, D)
WHERE: เงื่อนไขคัดกรอง (WHERE C >= 1000)
ORDER BY / LIMIT: เรียงลำดับและจำกัดแถว
จบในฟังก์ชันเดียว
แทนที่จะเขียน FILTER ซ้อน SORT ซ้อน UNIQUE... ฟังก์ชัน QUERY สามารถกรอง รวมกลุ่ม (GROUP BY) และจัดเรียงข้อมูลได้ครบในคำสั่งเดียว
นิยมใช้ทำ Dashboard ระดับผู้บริหาร
Practical Workshop
QUERY Aggregation: Group By Category
การเขียนสูตร QUERY สรุปผลรวมยอดขายแยกตามหมวดหมู่สินค้า
| Category (D) | Total Sales |
|---|---|
| Office Supplies | ฿14,400 |
| Electronics | ฿203,000 |
คำอธิบาย:
• GROUP BY D: รวมกลุ่มตามชื่อหมวดหมู่
• SUM(F): หาผลรวมยอดเงินของแต่ละกลุ่ม
สร้างผลลัพธ์แบบ Pivot Table อัตโนมัติในเซลล์เดียว
Data Reshaping
VSTACK & HSTACK: Seamless Table Merging
การรวมตารางจากหลายชีทหรือหลายสาขามาต่อกันในแนวตั้งและแนวนอนโดยอัตโนมัติ
VSTACK (Vertical)
นำตารางมาต่อกันในแนวตั้ง (ต่อท้ายแถวลงมา)
HSTACK (Horizontal)
นำคอลัมน์มาวางเคียงข้างกันในแนวนอน (ต่อขวา)
Data Reshaping
TOCOL & TOROW: Matrix Flattening
การแปลงตาราง 2 มิติ (Matrix) ให้กลายเป็นคอลัมน์เดียวหรือแถวเดียวในพริบตา
=TOCOL(range, [ignore])
บีบอัดตารางหลายคอลัมน์ให้เรียงเป็น 1 คอลัมน์เดี่ยว
=TOROW(range, [ignore])
บีบอัดตารางทั้งหมดให้แผ่ขยายออกเป็น 1 แถวแนวนอน
Regular Expressions
The Regex Trio: Pattern Intelligence
ชุดฟังก์ชัน Regular Expressions สำหรับจัดการข้อความที่มีรูปแบบพิเศษ
REGEXMATCH
ทดสอบว่าข้อความตรงกับ Pattern หรือไม่
=REGEXMATCH(A2, "\d{10}")คืนค่า: TRUE / FALSE
REGEXEXTRACT
ดึงเฉพาะคำหรือตัวเลขตาม Pattern ออกมา
=REGEXEXTRACT(A2, "[A-Z]+")คืนค่า: ข้อความที่ดึงได้
REGEXREPLACE
ค้นหาและแทนที่ข้อความตาม Pattern
=REGEXREPLACE(A2, "\D", "")คืนค่า: ข้อความที่แปลงแล้ว
Practical Workshop
REGEX Data Cleaning: Live Exercises
การล้างข้อมูลเบอร์โทรศัพท์ และการสกัดรหัสสินค้าจากชื่อสินค้าที่ปะปนกัน
| Raw Text (A) | Extracted SKU | Clean Phone |
|---|---|---|
| Order_TH-402_Urgent | TH-402 | 0819998888 |
ล้างเบอร์โทรศัพท์:
=REGEXREPLACE(Phone, "\D", "")
ลบขีด วงเล็บ และช่องว่างออกทั้งหมดในคำสั่งเดียว
Aggregations
The SUM Evolution: SUM vs SUMIF vs SUMIFS
วิวัฒนาการของฟังก์ชันผลรวม: รวมทั่วไป, รวมแบบเงื่อนไขเดียว, และรวมหลายเงื่อนไข
SUM
=SUM(D2:D100)
บวกตัวเลขทุกตัวในช่วง ไม่มีเงื่อนไข
รวมทุกแถว
SUMIF (1 Cond)
=SUMIF(A:A, "TH", C:C)
ช่วงบวก (sum_range) อยู่ตำแหน่งสุดท้าย
บวกแบบเงื่อนไขเดียว
SUMIFS (Multi)
=SUMIFS(C:C, A:A, "TH")
ช่วงบวก (sum_range) อยู่ตำแหน่งแรกสุด!
บวกแบบหลายเงื่อนไข
Practical Workshop
SUMIFS & AVERAGEIFS Multi-Criteria
การคำนวณหายอดขายรวมและยอดขายเฉลี่ย โดยมีเงื่อนไขทั้งหมวดหมู่สินค้าและช่วงเวลา
F2:F: ช่วงรวมยอด • D2:D: หมวดสินค้า • C2:C: พื้นที่
฿145,000
฿101,500
Defensive Formulas
Defensive Design: IFERROR Shielding
การดักจับข้อผิดพลาดของสูตรเพื่อป้องกันหน้าต่างรายงานขึ้น #N/A หรือ #DIV/0!
สูตรหารตัวเลข
แยกกรณีตัวหารเป็นศูนย์ออกจากผลคำนวณศูนย์จริง ตรวจตัวเลขก่อนนำไปสรุปรายงาน
กรณีหาไม่พบอาจใช้ IFNA; IFERROR จับข้อผิดพลาดหลายชนิดและอาจซ่อนสูตรผิด
Advanced Functional
LAMBDA: Custom Reusable Functions
การสร้างฟังก์ชันเฉพาะตัวขึ้นมาใช้เองโดยไม่ต้องเขียน Google Apps Script
1. Parameters: กำหนดตัวแปรรับค่า (price, vat)
2. Logic: สมการคำนวณ price * (1 + vat)
3. Arguments: ส่งค่าจริงต่อท้ายเพื่อคำนวณ
บันทึกเป็นชื่อฟังก์ชันประจำองค์กร
นำสูตร LAMBDA ไปบันทึกใน Data > Named functions เพื่อสร้างฟังก์ชันชื่อ =CALC_VAT(A1) ให้ทุกคนในทีมเรียกใช้ได้ทันที
เปลี่ยนสูตรซับซ้อนให้กลายเป็นคำสั้นๆ ที่เข้าใจง่าย
Formula Optimization
LET: In-Formula Variable Assignment
การประกาศตัวแปรภายในสูตร เพื่อเพิ่มความเร็วในการคำนวณและลดการเขียนสูตรซ้ำ
คำนวณ VLOOKUP เพียงครั้งเดียว เก็บไว้ในตัวแปร price แล้วนำไปใช้ต่อใน IF ได้ทันที
- เร็วขึ้นอย่างมหาศาล: ชีทไม่ต้องดึง VLOOKUP ซ้ำ
- สูตรสั้นลง: อ่านง่ายและ Debug สะดวก
- แก้ไขจุดเดียว: แก้ไขค่าที่ตัวแปรเพียงแห่งเดียว
เครื่องมือสำคัญสำหรับสเปรดชีตขนาดใหญ่
Advanced Functional
MAP: Array Iteration with LAMBDA
ประมวลผลช่วงข้อมูลทีละค่าด้วย LAMBDA ยืดหยุ่นกว่า ARRAYFORMULA แบบเดิม
| Item | Qty (B) | Price (C) | Result |
|---|---|---|---|
| Product A | 2 | 1500 | ฿3,000 |
| Product B | 3 | 1500 | ฿4,500 |
การทำงาน:
เขียนสูตรเพียงเซลล์เดียวที่แถวบนสุด MAP จะส่งค่าแต่ละคู่เข้าไปคูณใน LAMBDA และกระจายผลลัพธ์ลงมาให้ครบทุกแถวอัตโนมัติ
Comprehensive Capstone 01
Master Sheet: E-Commerce Ops (ตารางหลัก)
ชุดข้อมูลปฏิบัติการอีคอมเมิร์ซ (ชีต E-Commerce ในไฟล์แบบฝึก) สำหรับฝึก IF ร่วมกับ QUERY
| TxnID | CustID | Platform (Dim) | Gross_Sales | Discount | Is_Returned |
|---|---|---|---|---|---|
| TX-901 | CUST-551 | Shopee | 2,450 | 250 | FALSE |
| TX-902 | CUST-882 | Lazada | 8,900 | 500 | FALSE |
| TX-903 | CUST-104 | TikTok | 1,200 | 0 | TRUE |
1. คำนวณ Net Sales (Gross - Discount) เฉพาะรายการที่ Is_Returned = FALSE
2. ใช้ QUERY สรุปยอดขายแยกตาม Platform และเรียงจากมากไปน้อย
Comprehensive Capstone 02
Master Sheet: Warehouse Logistics
ชุดข้อมูลสต็อกสินค้าคลัง (ชีต Warehouse ในไฟล์แบบฝึก) สำหรับฝึก REGEXEXTRACT และ IF
| Bin_Location | Raw_Barcode | Unit_Stock | Reorder_Point | SKU | Need_Restock |
|---|---|---|---|---|---|
| ZONE-A-01 | [SKU-8821]-LOT4 | 140 | 50 | ? | ? |
| ZONE-B-04 | [SKU-9042]-LOT1 | 12 | 30 | ? | ? |
| ZONE-C-02 | [SKU-7730]-LOT2 | 25 | 25 | ? | ? |
1. สกัดรหัส SKU จาก Raw_Barcode ลงคอลัมน์ SKU (E2:E4)
2. เติม Need_Restock (F2:F4) เป็น "REORDER NOW" เมื่อสต็อกไม่เกินจุดสั่งซื้อ นอกนั้น "OK" แล้วอธิบายว่าแถวที่สต็อกเท่ากับจุดสั่งซื้อควรได้ค่าใด
คำใบ้และเฉลยอยู่ในหน้า "ชิ้นงานต่อยอด: ตรวจผลอีกทาง"
Synthesis
Architecture Decision Tree: Which Formula to Choose?
แนวทางการตัดสินใจเลือกสูตรให้เหมาะสมกับลักษณะงานและปริมาณข้อมูล
Simple Lookups
Use XLOOKUP as default. Fall back to INDEX+MATCH if 2D coordinate lookups are needed.
Multi-Condition Slices
Use FILTER for tabular data outputs, or QUERY when pivoting and grouping are required.
Performance Scale
Wrap recurring calculations inside LET to keep high-volume spreadsheets running fast.
Advanced Tools
Regular Expression (Regex) คืออะไร?
ชุดคำสั่งสัญลักษณ์ที่ใช้ค้นหา ตรวจสอบ และจัดการกับข้อความตาม "รูปแบบ (Pattern)" ที่เราต้องการ
สัญลักษณ์พื้นฐาน (Basic Symbols)
- ^ จุดเริ่มต้นของข้อความ
- $ จุดสิ้นสุดของข้อความ
- . แทนตัวอักษรใดๆ ก็ได้ 1 ตัว
- \d ตัวเลข 0-9 (Digit)
- \w ตัวอักษร, ตัวเลข, หรือ _ (Word)
สัญลักษณ์บอกจำนวน (Quantifiers)
- * มีหรือไม่มีก็ได้ (0 หรือมากกว่า)
- + ต้องมีอย่างน้อย 1 ตัว (1 หรือมากกว่า)
- ? มีหรือไม่มีก็ได้แค่ 1 ตัว (0 หรือ 1)
- [] เลือกตัวใดตัวหนึ่งในวงเล็บ เช่น [A-Z]
- () จัดกลุ่ม (Group) สัญลักษณ์
Regex Function
REGEXMATCH (ตรวจสอบเงื่อนไข)
ใช้คืนค่า TRUE / FALSE เมื่อข้อความนั้นตรงกับ Pattern ที่กำหนด นิยมใช้กับ Data Validation หรือ IF
Syntax: =REGEXMATCH(text, regular_expression)
Example 1: ตรวจสอบว่าในข้อความมี "ตัวเลข" ผสมอยู่หรือไม่?
=REGEXMATCH("Order123", "\d+")
TRUE
Example 2: ตรวจสอบว่าขึ้นต้นด้วย "TH" และตามด้วยตัวเลข 4 ตัว
=REGEXMATCH("TH2024-X", "^TH\d{4}")
TRUE
Regex Function
REGEXEXTRACT (ดึงข้อมูลจำเพาะ)
ใช้สกัดข้อความ (Extract) ส่วนที่ตรงกับ Pattern ออกมาจากประโยคยาวๆ
Syntax: =REGEXEXTRACT(text, regular_expression)
Example 1: ดึงเฉพาะ "ตัวเลข" ออกจากรหัสผสม
=REGEXEXTRACT("INV-89342-X", "\d+")
"89342"
Example 2: ดึง "โดเมนเนม" ออกจากอีเมล โดยใช้กลุ่ม ( )
=REGEXEXTRACT("john@gmail.com", "@(.*)")
"gmail.com"
Regex Function
REGEXREPLACE (ค้นหาและแทนที่)
ใช้ลบหรือดัดแปลงข้อความโดยอิงจาก Pattern (เช่น เซ็นเซอร์ข้อมูล, ตัดตัวอักษรพิเศษ)
Syntax: =REGEXREPLACE(text, regular_expression, replacement)
Example 1: เซ็นเซอร์เบอร์โทรศัพท์มือถือ (ปิด 4 ตัวหลัง)
=REGEXREPLACE("0891234567", "\d{4}$", "****")
"089123****"
Example 2: ลบอักขระพิเศษทั้งหมดออกให้เหลือแต่ตัวอักษรและตัวเลข
=REGEXREPLACE("Data@# 2024!", "[^\w\s]", "")
"Data 2024"
Regex Usecases
Real-world Regex: Data Validation (การตรวจสอบข้อมูล)
ตัวอย่างการใช้งานจริงเพื่อตรวจสอบความถูกต้องของข้อมูล (Data Integrity) โดยใช้ REGEXMATCH
1. ตรวจรูปแบบเลข 13 หลัก (ข้อมูลสมมติ)
ต้องเป็นตัวเลข \d จำนวน 13 ตัวเป๊ะๆ ตั้งแต่ต้น ^ จนจบ $
=REGEXMATCH(A2, "^\d{13}$")
"1100112233445" ➔ TRUE
2. ตรวจรูปแบบเลข 10 หลักที่ขึ้นต้นด้วย 0
ต้องขึ้นต้นด้วยเลข 0 และตามด้วยตัวเลขอีก 9 หลัก รวมเป็น 10 หลัก
=REGEXMATCH(A2, "^0\d{9}$")
"0891234567" ➔ TRUE
3. ตรวจสอบรูปแบบอีเมล (Email Format)
ตรวจสอบการมีสัญลักษณ์ @ และ . (dot) โดยใช้กลุ่มตัวอักษร \w (Word) และอักขระพิเศษ
=REGEXMATCH(A2, "^[\w\.-]+@[\w\.-]+\.[a-zA-Z]{2,}$")
"test@gmail.com" ➔ TRUE
Regex Usecases
Real-world Regex: Extraction & Replace
ประยุกต์ใช้กลุ่ม (Group) ควบคู่กับ REGEXEXTRACT และการจัดโครงสร้างข้อความใหม่ด้วย REGEXREPLACE
1. สกัดรหัส Tracking จากข้อความยาวๆ (REGEXEXTRACT)
ใช้ () Capture Group เพื่อดึงข้อมูลเฉพาะส่วนที่ต้องการออกมา เช่น ตัวอักษรและเลขที่ตามหลังคำว่า "Tracking:"
=REGEXEXTRACT(A2, "Tracking:\s([A-Z0-9]+)")
"TH123456789"
2. จัดรูปแบบวันที่ใหม่ด้วย Backreferences (REGEXREPLACE)
ใช้กลุ่ม () จับข้อมูลเป็นส่วนๆ และอ้างอิงกลับด้วย $1, $2, $3 เพื่อสลับตำแหน่งการแสดงผล
=REGEXREPLACE(A2, "(\d{2})/(\d{2})/(\d{4})", "$3-$2-$1")
"2024-12-31"
Evaluation
Student Competency Exam Checklist
เกณฑ์การประเมินทักษะความรู้ Google Sheets Fundamental & Formula Mastery
Foundational Skills:
✓ อธิบายความแตกต่างระหว่าง Dimension และ Metric ได้
✓ ระบุชนิดข้อมูลและจัด Formatting ได้ถูกต้อง
✓ ตั้งชื่อ Named Range และสร้าง Google Data Table ได้
Advanced Formula Skills:
✓ เขียน XLOOKUP และ Left-Lookup ได้อย่างถูกต้อง
✓ กรองข้อมูลด้วย FILTER แบบหลายเงื่อนไข
✓ ใช้ SUMIFS และ IFERROR ป้องกันข้อผิดพลาด
Interactive Workshop Complete
Ready for Practice & Live Execution
นักเรียนทุกคนพร้อมเริ่มทำแบบทดสอบบน Google Sheets ตามชีทแบบฝึกหัดจริงได้ทันที
"การเขียนสูตรที่ทรงพลัง ไม่ใช่การจำทุกฟังก์ชัน แต่คือการเลือกเครื่องมือที่เหมาะสมกับโจทย์ข้อมูล"