Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何在GoogleSheets上组织数据库_Google Apps Script_Google Sheets - Fatal编程技术网

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错误