Google Sheets中Sheet1数据转置到Sheet2的QUERY公式优化求助
Google Sheets 数据转置匹配解决方案
直接在Sheet2的A2单元格输入以下公式,即可实现你需要的ID与Primary Time对应效果:
=ARRAYFORMULA( QUERY( { Sheet1!A2:A, Sheet1!C2:C; Sheet1!A2:A, Sheet1!D2:D }, "SELECT Col1, Col2 WHERE Col1 IS NOT NULL ORDER BY Col1", 0 ) )
公式原理
- 构造数组:
{Sheet1!A2:A, Sheet1!C2:C; Sheet1!A2:A, Sheet1!D2:D}将Sheet1的「ID列+第一个时间列」和「ID列+第二个时间列」合并成一个二维数组,相当于把每个ID对应的两个时间拆分成两行数据。 - 筛选排序:QUERY函数筛选出ID非空的行,并按ID排序,确保同一ID的两条时间记录相邻排列。
- 自动填充:ARRAYFORMULA让公式自动应用到所有行,无需手动下拉。
原公式问题分析
你之前的公式通过JOIN将查询结果合并为字符串,再SPLIT拆分后转置,这种方式会破坏ID与时间的对应关系,且如果数据中包含逗号会导致拆分错误,最终无法生成正确的两列结构。
内容的提问来源于stack exchange,提问作者Akhmad Fahrudhin
相关产品推荐
相关产品推荐

