Google sheets 如何在单个工作表上使用基于时间的筛选器创建多个透视表?

Google sheets 如何在单个工作表上使用基于时间的筛选器创建多个透视表?,google-sheets,Google Sheets,我根据月份将数据分类到单独的表格中,例如2019年1月、2019年2月等等 目前,我创建多个数据透视表来分析特定月份的数据,然后复制并粘贴后续月份的数据,同时创建新的工作表,这是非常困难的 我想创建一个单页来分析基于月份的数据,是否有方法为所有透视表添加筛选选项,以便我可以即时查看所选月份的数据 通过使用INDIRECT()您可以从单独的工作表中构建一个范围,并使用该范围选择要查找以进行进一步分析的工作表。这可以放在数据验证形成的下拉菜单下。您可以手动键入此工作表列表,也可以使用脚本为您清除所有

我根据月份将数据分类到单独的表格中,例如2019年1月、2019年2月等等

目前,我创建多个数据透视表来分析特定月份的数据,然后复制并粘贴后续月份的数据,同时创建新的工作表,这是非常困难的

我想创建一个单页来分析基于月份的数据,是否有方法为所有透视表添加筛选选项,以便我可以即时查看所选月份的数据

通过使用
INDIRECT()
您可以从单独的工作表中构建一个范围,并使用该范围选择要查找以进行进一步分析的工作表。这可以放在数据验证形成的下拉菜单下。您可以手动键入此工作表列表,也可以使用脚本为您清除所有列表名称。因此,最终,您将拥有一种动态透视/查询表或任何您需要的东西

=INDIRECT(cell-with-dropdown-menu&"!range-you-want")
例如:

=QUERY({INDIRECT(A1&"!A1:Z")}, "select * where Col1 contains '@', 0)"
如果你有兴趣,这里有一个脚本和控制它的公式

  • =工作表(2)
    -返回左侧第二张工作表的名称
  • =工作表(1,TODAY())
    -返回左侧第一张工作表的名称,公式应每天更新
  • =SHEETLIST()
    -返回工作表名称和gid编号的列表(也可与TODAY()一起使用)

功能表(输入){
试一试{
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();

如果((输入>0)和(&)(输入)这是需要透视表的原因还是其他原因?另外,您能提供一个示例说明这个“透视”表应该是什么样子吗?我没有示例,只是对我需要的东西的一个设想-更像是一个“仪表板”我可以动态选择要分析的月份的工作表类型。我要求使用透视表,因为我不知道我可以使用什么其他解决方案。我将研究此问题并尝试..谢谢。
function SHEET(input) {
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets() ;
  if( (input>0) && (input <= sheets.length)) return sheets[(input-1)].getName() ;
  else return "invalid sheet #" ;
}
catch( err ) {
  return "#ERROR!" 
}
}


function SHEETLIST() {
try {
  var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
  var out = new Array( sheets.length+1 ) ;
  out[0] = [ "NAME" , "#GID" ];
  for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = 
  [sheets[i-1].getName() , sheets[i-1].getSheetId() ];
  return out
}
catch( err ) {
  return "#ERROR!" 
}
}