【问题标题】:Repeat range of items multiple times in Google Sheets在 Google 表格中多次重复项目范围
【发布时间】:2019-01-19 11:04:58
【问题描述】:

我想多次重复该项目范围(提供的值)。

例如

我在 sheet1!A

中有这个
Detroit
Texas
Utah
California 

现在我想重复 3 次以获得 Sheet2!A 的输出,例如:

Detroit
Texas
Utah
California 
Detroit
Texas
Utah
California 
Detroit
Texas
Utah
California 

公式应该是什么?

我得到了这个公式:

https://www.excel-bytes.com/how-to-repeat-a-range-of-items-multiple-times-in-excel/

但它在 Google 表格中不起作用

【问题讨论】:

  • 原来的公式对我来说很好用——我唯一遇到的问题是它有错误的双引号,我不得不编辑那些 =IF(ISBLANK(INDIRECT(“Cities! A”&ROW(A2))),INDIRECT(“重复!A”&(ROWS($A$2:A2)-(COUNTA(Cities!A:A)-2))),Cities!A2)
  • @player0 spreadsheet 是针对没有特定标签的电子表格应用程序的问题。

标签: google-sheets google-sheets-formula


【解决方案1】:

只有将其粘贴到同一张纸A5中并将其向下拖动时,此方法才会起作用:

=IF(ISBLANK(INDIRECT(ROW(A1))),INDIRECT((ROWS($A$1:A4)-(COUNTA(A:A)-2))),A1)

否则,您可以使用:

=QUERY({Sheet1!A1:A4;Sheet1!A1:A4;Sheet1!A1:A4},"select *",0)

或:

=TRANSPOSE(SPLIT(REPT(JOIN(",",Sheet1!A1,Sheet1!A2,Sheet1!A3,Sheet1!A4&","),3),",",1))

或:

=TRANSPOSE(SPLIT(REPT(Sheet1!A1&","&Sheet1!A2&","&Sheet1!A3&","&Sheet1!A4&",",3),",",1))

或:

function REPEAT(range,amount,header) {
  var output = [];

  // check if range is cell
  if(typeof range == 'string') {
    for(var i=0; i<amount; i++) {
      output.push([range]);
    }
    return output;
  } else {
    // check if header is wanted
    var value;
    if(header == 1) {
      output.push(range[0]);
      value=header;
    } else if(header == "") {
      value=0;
    } else {
      value=0;
    }  
    for(var i=0; i<amount; i++) {
      for(var j=value, jLen=range.length; j<jLen; j++) {
        output.push(range[j]);
      }
    }    
    return output;
  }  
}

=REPEAT(Sheet1!A1:A4,3,0)

【讨论】:

    【解决方案2】:

    我不妨添加这个作为答案:

    =IF(ISBLANK(INDIRECT("Cities!A"&ROW(A2))),INDIRECT("Repeat!A"&(ROWS($A$2:A2)-(COUNTA(Cities!A:A)-2))),Cities!A2)
    

    在 Google 表格和 Excel 中运行良好。

    这也有效,并且在 Excel 中可能更可取以避免使用间接:

    =IF(ISBLANK(INDEX(Cities!A:A,ROW(A2))),INDEX(Repeat!A:A,ROWS($A$2:A2)-(COUNTA(Cities!A:A)-2)),Cities!A2)
    

    【讨论】:

      【解决方案3】:

      你可以从第 1 行复制下来:

      =offset(Sheet1!A$1,mod(row()-1,4),)
      

      适合您的四件套。

      【讨论】:

        猜你喜欢
        • 2020-07-09
        • 1970-01-01
        • 2016-05-04
        • 1970-01-01
        • 2021-09-09
        • 2021-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多