要按日期查询多个 Google 表格,可以使用 Google Apps Script 来编写自定义代码。下面是一个解决方法的代码示例:
function queryMultipleGoogleSheets() {
// 设置要查询的日期范围
var startDate = new Date('2022-01-01');
var endDate = new Date('2022-01-31');
// 获取所有需要查询的 Google 表格的文件 ID
var spreadsheetIds = ['spreadsheetId1', 'spreadsheetId2', 'spreadsheetId3'];
// 创建一个空数组来存储查询结果
var queryResults = [];
// 遍历每个 Google 表格的文件 ID
for (var i = 0; i < spreadsheetIds.length; i++) {
var spreadsheetId = spreadsheetIds[i];
// 使用文件 ID 打开 Google 表格
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
// 获取表格中的所有工作表
var sheets = spreadsheet.getSheets();
// 遍历每个工作表
for (var j = 0; j < sheets.length; j++) {
var sheet = sheets[j];
// 获取工作表的名称
var sheetName = sheet.getName();
// 获取工作表的数据范围
var range = sheet.getDataRange();
// 获取数据范围中的所有值
var values = range.getValues();
// 遍历每一行数据
for (var k = 0; k < values.length; k++) {
var row = values[k];
// 获取日期列的索引(假设日期列是第一列)
var dateIndex = 0;
// 获取当前行的日期
var rowDate = row[dateIndex];
// 检查当前行的日期是否在指定的日期范围内
if (rowDate >= startDate && rowDate <= endDate) {
// 将符合条件的行数据添加到查询结果数组中
queryResults.push([sheetName, rowDate, row]);
}
}
}
}
// 将查询结果导出到新的 Google 表格
var outputSpreadsheet = SpreadsheetApp.create('Query Results');
var outputSheet = outputSpreadsheet.getActiveSheet();
// 将查询结果写入新的表格
for (var l = 0; l < queryResults.length; l++) {
var resultRow = queryResults[l];
outputSheet.getRange(l + 1, 1, 1, resultRow.length).setValues([resultRow]);
}
// 提示查询结果的位置和名称
Logger.log('Query results saved to: ' + outputSpreadsheet.getUrl());
}
上述代码使用 Google Apps Script 在指定的日期范围内查询多个 Google 表格。首先,您需要将要查询的日期范围和 Google 表格的文件 ID 填入代码中。然后,代码将遍历每个表格和工作表,检查每一行的日期是否在指定的日期范围内。符合条件的行数据将被保存到查询结果数组中。最后,查询结果将被导出到一个新的 Google 表格中。
请注意,您需要在 Google Sheets 中选择 "工具" -> "脚本编辑器" 来创建和运行这段代码。