如何在Google表格上整理数据库

问题描述 投票:-3回答:2

我试图将数据从一张纸组织成几张不同的纸张,例如,如果在我的原始数据表中,我有四个人喜欢他们喜欢的食物:

1 | Rice
2 | Pasta
3 | Rice
4 | Cheese

有没有办法对这张表进行整理,并让所有像米饭一样的人出现在第二张纸上。像“Rice”这样的东西看起来像:

1 | Rice
3 | Rice

基本上尝试进行查找或索引匹配,可以跳过“Pasta”或“Cheese”人,而不会在“Rice”表中留下空行。

google-apps-script google-sheets
2个回答
0
投票

我会给你一些东西:

我这里有Sheet1Sheet2。 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;
}

这是rawSheet(sheet 1 / sheet.getSheets()[1]):

enter image description here

这是filteredSheet(sheet 2 / sheet.getSheets()[2]):

enter image description here

您会注意到所有吃Rice的名字都被移到了filteredSheet

欲了解更多信息,请熟悉Spreadsheet Service


0
投票

你听说过VLOOKUP()吗?这允许您搜索范围并基于匹配列从列中提取值。

谷歌表格vlookup(https://www.ablebits.com/office-addins-blog/2017/07/05/vlookup-google-sheets-example/)的第一个谷歌搜索结果之一:

Google表格VLOOKUP函数的语法如下:

VLOOKUP(search_key,range,index,[is_sorted])前3个参数是必需的,最后一个是可选的:

Search_key - 是要搜索的值(查找值或唯一标识符)。例如,您可以搜索单词“apple”,数字10或单元格A2中的值。

范围 - 搜索的两列或更多列数据。 Google表格VLOOKUP函数始终在范围的第一列中搜索。

索引 - 应返回匹配值(与search_key在同一行中的值)的范围内的列号。

范围中的第一列具有索引1.如果index小于1,则Vlookup公式返回#VALUE!错误。如果它大于范围内的列数,VLOOKUP将返回#REF!错误。

Is_sorted - 指示您的Vlookup公式是应返回最接近的匹配(TRUE)还是完全匹配(FALSE)。

如果is_sorted设置为FALSE,则Vlookup公式将使用完全匹配进行搜索。如果查找列(范围的第一列)包含2个或更多完全等于search_key的值,则返回找到的第1个值。如果未找到完全匹配,则返回#N / A错误。在大多数情况下,建议Vlookup完全匹配。

如果is_sorted为TRUE或省略(默认),则Vlookup公式返回近似匹配。查询列必须按升序排序,即从A到Z或从最小到最大。具有近似匹配的Vlookup以这种方式工作:公式首先搜索完全匹配。如果未找到完全匹配,则会搜索小于或等于search_key的最接近匹配。如果查阅列中的所有值都大于搜索键,则返回#N / A错误。

© www.soinside.com 2019 - 2024. All rights reserved.