Google sheets 我如何加入多行&;在Google Sheets中使用ARRAYFORMULA(或类似)的多列数据?
我正试图为一位生物学家和她的学生构建一个谷歌表单公式,以帮助在程序之间铲取数据 起点:Google sheets 我如何加入多行&;在Google Sheets中使用ARRAYFORMULA(或类似)的多列数据?,google-sheets,google-sheets-formula,array-formulas,Google Sheets,Google Sheets Formula,Array Formulas,我正试图为一位生物学家和她的学生构建一个谷歌表单公式,以帮助在程序之间铲取数据 起点: image x y ----------------- dog 994 557 dog 660 199 cat 74 9 cat 105 23 cat 5296 93 电子表格可以有任意数量的图像和任意数量的(x,y)对。 (对我来说,真实的图像名称是难以理解的,是显微镜图像的简称。) 她需要的输出是每幅图像一行,如下所示: imag
image x y
-----------------
dog 994 557
dog 660 199
cat 74 9
cat 105 23
cat 5296 93
电子表格可以有任意数量的图像和任意数量的(x,y)对。
(对我来说,真实的图像名称是难以理解的,是显微镜图像的简称。)
她需要的输出是每幅图像一行,如下所示:
imagename,x0,y0,x1,y1,x2,y2…
因此,使用上述数据:
cat,74,9,105,23,5296,93
dog,994,557,660,199
我认为,如果有一个单一的ArrayFormula-ish公式,她可以将其粘贴在一张单独的纸上
经过一番周旋之后,我得到的最接近的方法是两步走法。第一步使用查询创建一列唯一的图像名称。
第二步必须粘贴到相邻的列上,每个图像1个,如下所示:
=JOIN(", ", G3, ARRAYFORMULA(FILTER(B:B, A:A = G3)&", "&FILTER(C:C, A:A = G3)))
(其中G3是唯一的图像名称,如“狗”)
它是有效的,但是对于那些可能只有最基本的电子表格经验的人来说,它的可移植性远不如单一的公式
谢谢 在新工作表的A1中使用:
=ARRAYFORMULA(REGEXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(QUERY(QUERY(
IF(LEN(Sheet1!A2:A&Sheet1!B2:B&Sheet1!C2:C),
{Sheet1!A2:A&",", Sheet1!B2:B&", "&Sheet1!C2:C&",", ROW(Sheet1!A2:A)}, ),
"select Col1,max(Col2)
where Col1 is not null
group by Col1
pivot Col3"),
"offset 1", 0)),, 9^9))), ",$", ))
试试:
=ARRAYFORMULA(
TRANSPOSE(
REGEXREPLACE(TRIM(
QUERY(
{
TRANSPOSE(UNIQUE(FILTER(A2:A & ",", A2:A <> "")));
IF(
FLATTEN(FILTER({A2:A, A2:A}, A2:A <> ""))
<> TRANSPOSE(UNIQUE(FILTER(A2:A, A2:A <> ""))),,
FLATTEN(FILTER(B2:C & ",", A2:A <> ""))
)
},, 10^7
)
), ",$",
)
)
)
=数组公式(
转置(
REGEXREPLACE(饰件(
质疑(
{
转置(唯一(过滤器(A2:A&“,”,A2:A”);
如果(
展平(过滤器({A2:A,A2:A},A2:A“”)
转置(唯一(过滤器(A2:A,A2:A“”)),,
展平(过滤器(B2:C&“,”,A2:A”)
)
},, 10^7
)
), ",$",
)
)
)
非常好地使用了
max
来旋转非数值