随着新工作表不断添加到Google表格中,从其他工作表中提取唯一值

杰西曼

我正在尝试从不确定数目的工作表的A列中生成唯一项的列表。想法是随着时间的流逝,将添加更多的工作表,并且我不想更新公式来说明新工作表。

测试/示例电子表格https://docs.google.com/spreadsheets/d/193ZTAbn8R-HjwDn2LE2eDDVJk_LbY4V5P9J6ynES6wo/edit#gid=0

在示例中,工作表List1,List2和List3是我要从中创建一个组合列表(在工作表“ CombinedList”中)的列表,其中每个工作表的列A中都出现了这些项目。如“期望的结果”表所示,我希望得到一个表,该表从每个列表中提取与每个项目相关的值。我可以在创建新工作表时将它们手动添加到行1中。只是我困住了A列中项目列表的生成。

我本来是在做以下事情,

=ARRAYFORMULA(UNIQUE(QUERY({'List1'!A2:A;'List2'!A2:A}, 
 "select Col1 where Col1 is not null")))

但是我不必写出所有要查询的列表的名称,而是想使用INDIRECT()之类的东西来引用在第1行中列出的工作表。但是,我已经阅读了INDIRECT和ARRAYFORMULA的几个地方彼此之间不要玩得很好。

玩家0

您可以使用以下脚本:

function SNAME(option) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet()
var thisSheet = sheet.getName(); 
if(option === 0){                  // ACTIVE SHEET NAME =SNAME(0)
return thisSheet;
}else if(option === 1){            // ALL SHEET NAMES   =SNAME(1)
var sheetList = [];
ss.getSheets().forEach(function(val){
   sheetList.push(val.getName())
});
return sheetList;
}else if(option === 2){            // SPREADSHEET NAME  =SNAME(2)
return ss.getName();

}else{
return "#N/A";                     // ERROR MESSAGE
};
};

function onEdit() { 
var sheet = SpreadsheetApp.getActive().getSheetByName('Master Sheet');  
var src = sheet.getRange("A1");
var str = src.getValue(); 
var cell = sheet.getRange("A2"); 
cell.setFormula(str);
}

然后将其粘贴到主表的A1中:

=ARRAYFORMULA("=ARRAYFORMULA(QUERY({"&TEXTJOIN("; ", 1, 
 FILTER(SNAME(1), SNAME(1)<>SNAME(0))&"!A2:B, "&
 FILTER(SNAME(1), SNAME(1)<>SNAME(0))&"!C2:C&"&
 FILTER(SNAME(1), SNAME(1)<>SNAME(0))&"!A1")&
 "}, ""select Col1,max(Col2) where Col1 is not null group by Col1 pivot Col3""))")

0

如果添加了新工作表,这将满足您所有不需要通过添加引用来编辑公式的需求。唯一的缺点是要重新计算工作表名称脚本...为此,您需要拆除A1公式,例如,'在前导=Enter之前添加,然后将其删除以修复公式

电子表格演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将列添加到其他工作表

如何根据唯一 ID Nr 将工作表 1 中的值添加到同一 Excel 文件中的另一个工作表?

根据搜索查找单元格,更改其值,然后添加到新工作表的列表中?

为每个唯一值创建新工作表

使用Google Sheet API在电子表格中添加(创建)新工作表

将提交的值添加到Google工作表中的现有单元格值

从列中的唯一值创建新工作表并粘贴整行 - 大数据集

当行数限制> 1M时,将新工作表添加到Excel工作簿中以存储数据

在python中将新工作表添加到现有工作簿

如何使用其他工作表中的所有值填充Google文档中的一个工作表?

添加VBA(从其他工作表中提取数据)例程后,Excel文件变得过重

从Google表格中的表格中提取唯一值

使用VBA或任何其他方式将列名称添加到EXCEL中的多个工作表中

通过Google表格中的列名称将一个单元格值从一个工作表中提取到另一个工作表中

将数据透视表添加到具有相同工作表上的数据的新工作表

将其他表中的值添加到 h2 中当前表的值

Google 电子表格 - 制作按钮,在按下时将数据添加到另一个工作表中的单元格中

如何将形状添加到之前将动态添加的新工作表

使用 Python、ExcelWriter 和 openpyxl 创建一个空白工作表并将文本添加到该新工作表

VBA从母版工作表复制一行,然后将其添加到每个提取工作表中的数据底部

SQL查询基于同一表中其他列的值从表中提取日期?

Excel宏,用于从一个工作表中的特定字段复制数据,仅保留该值并将其添加到另一工作表中

根据另一列中的值提取唯一值以分隔工作表

使用其他工作表的单元格值基于相对引用的Google表格条件格式

将具有唯一值的所有行复制到新工作表中,包括标题行

从前一张工作表中提取数据以填充当前工作表中的值

从内部表中提取唯一值

在Google表格中的其他工作表上查找范围内的子字符串

根据其他工作表上的复选框在Google表格中过滤下拉列表