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
来旋转非数值