首页 > 解决方案 > 如何返回内置 Google 电子表格函数可以使用的字符串

问题描述

我有一个函数返回一个字符串,这些字符串是我需要使用 UNIQUE() 内置函数扫描的单元格,但它不处理返回的值。

尝试将它们放在引号中,没有帮助。

function GetRange(sheet, ColumnLetter , Offset)
{
  var startColumn = letterToColumn(ColumnLetter);
  var string = "";

  for(var i=startColumn; i <= Offset; i++)
    {
      string += sheet + "!" + columnToLetter(i) +":"+columnToLetter(i)+";";      
    }

   string = string.substring(0, string.length-1);

   return string+"";
}

在工作表方面,我在一个单元格中有这个

=UNIQUE({GetRange("Raid","C", 30)})

我希望将返回的字符串放入内置UNIQUE()函数中,并像手动输入它一样执行代码。

相反,它只是像这样将返回的字符串输出到单元格中

 Raid!C:C;Raid!D:D;Raid!E:E;Raid!F:F;Raid!G:G;Raid!H:H;Raid!I:I;Raid!J:J;Raid!K:K;Raid!L:L;Raid!M:M;Raid!N:N;Raid!O:O;Raid!P:P;Raid!Q:Q;Raid!R:R;Raid!S:S;Raid!T:T;Raid!U:U;Raid!V:V;Raid!W:W;Raid!X:X;Raid!Y:Y;Raid!Z:Z;Raid!AA:AA;Raid!AB:AB;Raid!AC:AC;Raid!AD:AD

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-formulaarray-formulasgoogle-sheets-query

解决方案


试试这样:

=ARRAYFORMULA(SORT(UNIQUE(TRANSPOSE(SPLIT(TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(LEN(Raid!A1:A), IF(Raid!C1:AL<>"", "♦"&Raid!C1:AL, ), )),,999^99)),,999^99)), "♦")))))

推荐阅读