Google apps script 如何在GoogleSheets上组织数据库
我正在尝试将一张表中的数据组织到多张不同的表中,例如,如果在我的原始数据表中有四个人吃他们最喜欢的食物:Google apps script 如何在GoogleSheets上组织数据库,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试将一张表中的数据组织到多张不同的表中,例如,如果在我的原始数据表中有四个人吃他们最喜欢的食物: 1 | Rice 2 | Pasta 3 | Rice 4 | Cheese 有没有办法把这张纸整理一下,让所有喜欢赖斯的人都出现在第二张纸上。类似“米饭”的东西看起来像: 1 | Rice 3 | Rice 基本上是尝试进行查找或索引匹配,这样就可以跳过“面食”或“奶酪”人员,而不会在“米饭”表中留下空行。我将从以下内容开始: 这里有Sheet1和Sheet2。Sheet1包含原始列表
1 | Rice
2 | Pasta
3 | Rice
4 | Cheese
有没有办法把这张纸整理一下,让所有喜欢赖斯的人都出现在第二张纸上。类似“米饭”的东西看起来像:
1 | Rice
3 | Rice
基本上是尝试进行查找或索引匹配,这样就可以跳过“面食”或“奶酪”人员,而不会在“米饭”表中留下空行。我将从以下内容开始: 这里有
Sheet1
和Sheet2
。Sheet1包含原始列表,Sheet2将填充过滤后的值
这是我的密码:
function main(){
var sheet = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
var ctr = 1;
var sheetRange ="" ;
var myActiveSheet = "";
var my2DArray = getValue("rawSheet!A1:B9");
if(my2DArray){
for( var i =0; i<my2DArray.length; i++){
if(my2DArray[i][1] == "Rice"){
Logger.log((my2DArray[i][0]));
//ctr will ensure the new values don't overwrite the previous values
sheetRange = 'A'+ctr;
//activate the sheet which will contain the 'filtered list'
sheet.setActiveSheet(sheet.getSheets()[2]).getRange(sheetRange).setValue(my2DArray[i][0]);
//make sure the new values don't overwrite the previous values so increment it (row1, row2, row3, etc)
ctr++;
}
}
}
}
//this function will fetch the values from the raw list
function getValue(a1notationString) {
var sheet = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID");
var data = sheet.getRange(a1notationString).getValues();
return data;
}
函数main(){
var sheet=SpreadsheetApp.openById(“您的电子表格ID”);
var-ctr=1;
var范围=”;
var myActiveSheet=“”;
var my2DArray=getValue(“rawSheet!A1:B9”);
if(my2DArray){
对于(var i=0;i您听说过VLOOKUP()吗?这允许您搜索一个范围,并根据匹配的列从列中提取一个值
从google Sheets vlookup()的第一个google结果中:
Google Sheets VLOOKUP函数的语法如下:
VLOOKUP(搜索键、范围、索引,[已排序])
前3个参数是必需的,最后一个是可选的:
搜索键-是要搜索的值(查找值或唯一标识符)。例如,您可以搜索单词“apple”、数字10或单元格A2中的值
范围-用于搜索的两列或多列数据。Google Sheets VLOOKUP函数始终在范围的第一列中搜索
索引-范围内的列号,从中应返回匹配值(与搜索键位于同一行中的值)
范围中的第一列有索引1。如果索引小于1,Vlookup公式将返回#VALUE!错误。如果它大于范围中的列数,Vlookup将返回#REF!错误
Is_sorted-指示Vlookup公式应返回最接近的匹配(TRUE)还是精确匹配(FALSE)
如果is_sorted设置为FALSE,则Vlookup公式将使用精确匹配进行搜索。
如果查找列(范围的第一列)包含2个或多个完全等于搜索键的值,则返回找到的第一个值。如果未找到完全匹配,则返回#N/A错误。在大多数情况下,建议使用完全匹配进行Vlookup
如果is_sorted为TRUE或省略(默认),Vlookup公式将返回近似匹配。查找列必须按升序排序,即从a到Z或从最小到最大。
Vlookup与近似匹配的工作方式如下:公式首先搜索精确匹配。如果未找到精确匹配,则搜索小于或等于搜索键的最接近匹配。如果查找列中的所有值都大于搜索键,则返回#N/A错误