Повторите диапазон элементов несколько раз в Google Sheets - PullRequest
0 голосов
/ 19 января 2019

Я хочу повторить диапазон пунктов несколько раз (предоставленное значение).

например.

У меня есть это в 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 / как к повтору-а-диапазон из-элементов-множественных раз-в-первенствует /

Но это не работает в Google Sheets

Ответы [ 3 ]

0 голосов
/ 19 января 2019

Я мог бы также добавить это как ответ:

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

отлично работает в Google Sheets и Excel.

Это также работает и может быть предпочтительным в Excel, чтобы избежать использования Indirect:

=IF(ISBLANK(INDEX(Cities!A:A,ROW(A2))),INDEX(Repeat!A:A,ROWS($A$2:A2)-(COUNTA(Cities!A:A)-2)),Cities!A2)
0 голосов
/ 29 мая 2019

Вы можете скопировать из строки 1:

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

столько наборов из четырех, сколько вам нужно.

0 голосов
/ 19 января 2019

это будет работать, только если вы вставите его в A5 того же листа и перетащите его вниз:

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

enter image description here

в противном случае вы можете использовать:

=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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...