如何使用公式连接范围,即使 Google 工作表上有空白要考虑?

How to concatenate ranges using formulas, even when there are blanks to be considered on Google Sheets?

问题包括连接包含 product1、brand1、price1、product2、brand2、price2 等的多个水平范围,即使单元格为空也是如此。

这是一个 link 的工作示例: https://docs.google.com/spreadsheets/d/1poZW2JAEu419BnOzXVe7-Sq777moXvH_o16NKZtkjAE/edit?usp=sharing

我试过: =transpose(sheet1A2:C),transpose(sheet1D:F) {sheet1A2:C,sheet1D:F} 我也试过过滤它,但 none 目前有效。

我们将不胜感激。

干杯, 安东尼奥

使用:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(A3:A4&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Product.*"))&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Brand.*"))&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Price.*"))); "×");
 "where Col2 is not null"))

更新:

=ARRAYFORMULA(SPLIT(FLATTEN(A3:A4&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Product.*"))&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Brand.*"))&"×"&
 FILTER(A3:4; REGEXMATCH(A2:2; "Price.*"))); "×"))

备选方案:

您也可以尝试下面的 bound script 并将其添加到您的 sheet 以简化函数使用:

function transposeBy3(data) {
  var oneData = []
  var final = [];
  var start = 0;
  var end = 3;
  data.forEach(raw => {
    raw.forEach(value => {
      oneData.push(value);
    })
  })
  if(oneData.length%3 == 0){
    for(y=0; y<oneData.length; y++){
      final.push(oneData.slice(start, end));
      start = start + 3;
      end = end + 3;
    }
  }
  return final;
}

样本

After saving the bound script on your spreadsheet file, on cell B11, you can put this custom function =transposeBy3(B3:J4) as seen below

我会根据您分享的内容进行回答,前提是您的 header 不会 是“Product1”或“Brand1”,而是实际名称彼此不相似的产品和品牌。

首先,切勿将不同的图表或结果放在会随时间增长的工作数据库下。出于这个原因,我在您的传播 sheet 中添加了两个新的 sheet。第一个是您的第一个 sheet(“Página1 - Erik”)的副本,其中 只有 有您的数据库 header 和数据。然后,结果公式位于单元格 A2 中的另一个 sheet(“Erik Help”)中。这个公式指的是清理后的 sheet "Página1 - Erik":

=ArrayFormula(SPLIT(FLATTEN(FILTER('Página1 - Erik'!A3:A&"|"&FILTER('Página1 - Erik'!B3:J;MOD(COLUMN('Página1 - Erik'!B3:J3)-2;3)=0)&"|"&FILTER('Página1 - Erik'!B3:J;MOD(COLUMN('Página1'!B3:J3)-3;3)=0)&"|"&FILTER('Página1 - Erik'!B3:J;MOD(COLUMN('Página1 - Erik'!B3:J3)-4;3)=0);'Página1 - Erik'!A3:A<>""));"|";1;0))

这与 player0 提供的方法类似,但它不依赖于 header 文本的相似性,而是依赖于列模式。

我会留给您根据需要修改公式,以便在适当的时候应用于您的实际数据集。