0

我有一个包含总计(总计列包含“总计”一词)的信息数据透视表,我想进一步处理。我创建了一个新工作表并使用

=ARRAYFORMULA('Pivot Table mins'!A:B)

抓住前两列。

但后来我想“导入”只是其中包含单词“Total”的列,所以我创建了:

=FILTER('Sheet'!A:X,MMULT(REGEXMATCH('Sheet'!A:X,"Total"),ROW(INDIRECT("a1:a"&COLUMNS('Sheet'!A:X)))^0))

例如,如果数据透视表数据跨越 A 到 Z 列,但只有 D 和 F 列具有关键字“Total”,我只想“导入”这些列。

但是我收到一条错误消息:

FILTER 的范围大小不匹配。预期行数:1250。列数:1。实际行数:1,列数:1。

我读过可能是范围不匹配,但是我的所有范围都匹配。

旁注:两张纸都有 1242 行。

4

1 回答 1

0
function onOpen() {
 SpreadsheetApp.getActiveSpreadsheet().addMenu(
    'Copy Data', [ 
      { name: 'Copy', functionName: 'copyTotalColumns' },
      ]);  
}

function copyTotalColumns() {
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var s=ss.getSheetByName("Sheet")
  var s1=ss.getSheetByName("Sheet2")
  var lastColumn = s.getLastColumn();
  var lastRow= s.getLastRow()
  var startCol=3 //column to start total rows
  var data = s.getRange(1,1,1,lastColumn).getValues();//get headers
  for(var i=0;i<data[0].length;i++){
    if( data[0][i]=="Total"){
      var copyFrom=s.getRange(2, i+1, lastRow,1).getValues()//get total column
      var copyTo=s1.getRange(2, startCol,       
lastRow,1).setValues(copyFrom)//set total column on new sheet
      startCol=startCol+1 //index column
 }
  }}
于 2017-06-14T17:44:11.863 回答