ZVVQ代理分享网

Google Sheets数据提取方法

作者:zvvq博客网

INDEX函数

通过指定数据范围、行号和列号,精确提取目标单元格的值。

=INDEX(范围, 行号, 列号)
=INDEX(A2:D7, 3, 4) // 提取第3行第4列的值

适用于静态引用,无需动态调整行号。可结合其他函数(如MAX或FILTER)与INDEX组合使用,实现动态提取。

 

QUERY函数

通过SQL-like查询语法,按条件筛选并提取行。

=QUERY(数据范围, "SELECT * WHERE 条件", 1)
=QUERY(Dataset, "SELECT * WHERE B='Manufacturing'", 1)

适合处理结构化数据,支持多条件组合(如WHERE B='Manufacturing' AND C>100)。

 

FILTER函数

直接返回符合条件的整行数据,无需手动调整行号。

=FILTER(数据范围, 条件)
=FILTER(A2:D7, B2:B7 > 100) // 提取销量大于100的行

适用于需要根据条件提取多行数据的情况。

 

REGEXEXTRACT

从文本中提取特定模式(如URL、邮箱等)的片段。

=REGEXEXTRACT(文本, 正则表达式)
=REGEXEXTRACT(A2, "\d+") // 提取数字
=LEFT(A2, SEARCH("ea", A2) - 1) // 提取"ea"前的文本

适用于非结构化文本的片段提取,如从单元格中提取特定格式的内容。

 

Google Apps Script

编写脚本实现批量处理或复杂逻辑。

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var row = sheet.getRow(1); // 获取第1行数据
var data = row.getValues(); // 返回数组形式的数据

适用于需要自动化处理大量数据或执行复杂操作的场景。

 

Python + gspread

通过Python脚本调用Google Sheets API,灵活处理数据。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(credentials)
sheet = client.open('Sheet Name').sheet1
row_data = sheet.row_values(1) # 获取第1行数据

适用于需要与其他系统集成或进行高级数据分析的场景。

总结

简单场景

使用INDEXQUERY直接提取特定行/列。

复杂条件

结合FILTERQUERY实现多条件筛选。

自动化需求

通过脚本或Python库实现批量处理。

文本提取

使用REGEXEXTRACTLEFT/MID等函数提取片段。

动态行处理技巧

获取第一行/最后一行

若需提取表头或汇总行,可使用以下技巧:

获取第一行

=INDEX(A2:D7, 1, 1)

获取最后一行

=INDEX(A2:D7, ROWS(A2:D7), 1)

此方法适用于动态更新的数据集,确保始终提取最新数据。