Google apps script 已经改变了。对吗?没错!要避免重新排列列的问题,请使用字段的唯一列表并将其另存为值。若只有字段名不会改变,那个么查询就可以正常工作。我将更新我的答案,以说明如何使用列名。虽然这种方法对我来说是可行的,但它会对字段名更改、列更改和插入进行更多的开销管理。因此

Google apps script 已经改变了。对吗?没错!要避免重新排列列的问题,请使用字段的唯一列表并将其另存为值。若只有字段名不会改变,那个么查询就可以正常工作。我将更新我的答案,以说明如何使用列名。虽然这种方法对我来说是可行的,但它会对字段名更改、列更改和插入进行更多的开销管理。因此,google-apps-script,google-sheets,google-sheets-formula,google-sheets-query,importrange,Google Apps Script,Google Sheets,Google Sheets Formula,Google Sheets Query,Importrange,已经改变了。对吗?没错!要避免重新排列列的问题,请使用字段的唯一列表并将其另存为值。若只有字段名不会改变,那个么查询就可以正常工作。我将更新我的答案,以说明如何使用列名。虽然这种方法对我来说是可行的,但它会对字段名更改、列更改和插入进行更多的开销管理。因此,尽管这是一个解决方案,但对我来说更好的方法是@Ruben提供的;首先在importrange中移动数据,在这里我可以隐藏选项卡,然后使用到目前为止我喜欢的现有SQL脚本,在同一本书中现在的本地选项卡/工作表上运行。谢谢你Max.Thanx M


已经改变了。对吗?没错!要避免重新排列列的问题,请使用字段的唯一列表并将其另存为值。若只有字段名不会改变,那个么查询就可以正常工作。我将更新我的答案,以说明如何使用列名。虽然这种方法对我来说是可行的,但它会对字段名更改、列更改和插入进行更多的开销管理。因此,尽管这是一个解决方案,但对我来说更好的方法是@Ruben提供的;首先在importrange中移动数据,在这里我可以隐藏选项卡,然后使用到目前为止我喜欢的现有SQL脚本,在同一本书中现在的本地选项卡/工作表上运行。谢谢你Max.Thanx Max.真希望我能有你的头脑。这些列将重新排列。标题列名将更改,并且对我的主数据执行多个SQL查询。要使用您的解决方案,需要管理许多新的列,这些列将引用将要创建的SQL,而使用列的名称启动每个SQL-QUERY调用,并知道即使情况发生变化,这些列也会更新,这是更好的解决方案。我不想阻止其他人使用您的解决方案,因为这是一个很好的方法。不幸的是,由于已知的许多变化将要发生,我的场景使它变得笨拙。伟大的Max。它确实直接回答了这个问题,这是很好的逻辑。但是想要使用字段名而不是列号的原因是在重新排列或插入列时。所以这个解决方案无法解决这个问题,因为我认为您必须返回并为那些已更改的字段重新设置C列。对吗?没错!要避免重新排列列的问题,请使用字段的唯一列表并将其另存为值。若只有字段名不会改变,那个么查询就可以正常工作。我将更新我的答案,以说明如何使用列名。虽然这种方法对我来说是可行的,但它会对字段名更改、列更改和插入进行更多的开销管理。因此,尽管这是一个解决方案,但对我来说更好的方法是@Ruben提供的;首先在importrange中移动数据,在这里我可以隐藏选项卡,然后使用到目前为止我喜欢的现有SQL脚本,在同一本书中现在的本地选项卡/工作表上运行。谢谢你Max.Thanx Max.真希望我能有你的头脑。这些列将重新排列。标题列名将更改,并且对我的主数据执行多个SQL查询。要使用您的解决方案,需要管理许多新的列,这些列将引用将要创建的SQL,而使用列的名称启动每个SQL-QUERY调用,并知道即使情况发生变化,这些列也会更新,这是更好的解决方案。我不想阻止其他人使用您的解决方案,因为这是一个很好的方法。不幸的是,由于已知的许多变化将要发生,我的场景使它变得笨拙。鲁本,这看起来是一个合理的方法,但时间安排不是一个问题吗?@JimGarner:这个答案有两个部分。主要部分是第一段,第二部分是关于第一部分提到的两种解决途径之一。我认为你应该考虑更新你的问题或者张贴一个新的问题,包括更多关于具体情景和时间相关问题的细节。我将把这个标记为答案,因为它看起来是我的需要的最佳途径。然而,马克斯·马克洛夫的答案对其他人来说可能更好。我确实有一个关于@Ruben答案时机的潜在问题,这个问题只能通过测试来解决。在使用这个解决方案几个星期后,我可以证明这是对我来说最好的答案。如果您想使用SQL脚本,以便可以使用头名称代替Col1、Col2、Col34。。。您需要使用IMPORTRANGE在不同的Google工作表中完成这一点,使用IMPORTRANGE将所需的工作表带过来,然后使用脚本中的查询和SQL函数从该工作表中提取。隐藏导入表,留下下方。。。所有的数据都被导入到一张有人可以看到的表格中。。。这就是为什么你在第一名做了不同的表格!鲁本,这看起来是一个合理的方法,但时机不是问题吗?@JimGarner:这个答案有两个部分。主要部分是第一段,第二部分是关于第一部分提到的两种解决途径之一。我认为你应该考虑更新你的问题或者张贴一个新的问题,包括更多关于具体情景和时间相关问题的细节。我将把这个标记为答案,因为它看起来是我的需要的最佳途径。然而,马克斯·马克洛夫的答案对其他人来说可能更好。我确实有一个关于@Ruben答案时机的潜在问题,这个问题只能通过测试来解决。在使用这个解决方案几个星期后,我可以证明这是对我来说最好的答案。如果您想使用SQL脚本,以便可以使用头名称代替Col1、Col2、Col34。。。您需要使用IMPORTRANGE在不同的Google工作表中完成这一点,使用IMPORTRANGE将所需的工作表带过来,然后使用脚本中的查询和SQL函数从该工作表中提取。隐藏导入表,留下下方。。。所有的数据都被导入到一张有人可以看到的表格中。。。这就是为什么你在第一名做了不同的表格!
=QUERY(
  IMPORTRANGE("long-hairy-key","MASTER!A:BN"),
  IMPORTRANGE("long-hairy-key",SQL("MASTER!A:BN",STATS!D33,true)),
  1
 )
select TRACT,PARID,LINE,OWN1,T_STATUS,ExhibitDate,FEET2,NewEase,TWSacres,ExistEase,PrevDistTWS,ATWSacres,ARdistance,StagingArea,Damages,UpdateReason,ACQ_STATUS where Col51 <>'' ORDER BY LINE ASC, TRACT ASC Label OWN1 'Landowner'
=QUERY( Shee1!A:BN, SQL("Sheet1!A:BN",STATS!D33,true)), 1 )
=transpose(IMPORTRANGE("long-hairy-key","MASTER!A1:BN1"))
=ARRAYFORMULA(ROW(OFFSET(A1,,,counta(A:A))))
  A               B
1 FieldName1      1
2 FieldName2      2
3 FieldName3      3
4 FieldName4      4
5 FieldName5      5
  A               B    C
1 FieldName1      1    1
2 FieldName2      2
3 FieldName3      3    1
4 FieldName4      4
5 FieldName5      5    1
="select Col"&JOIN(", Col",FILTER(B:B,C:C=1))
=query(IMPORTRANGE("long-hairy-key","MASTER!A:BN"), F1)
  A               B
1 FieldName1      1
2 FieldName2      2
3 FieldName3      3
4 FieldName4      4
5 FieldName5      5
  A               B    C
1 FieldName1      1    1
2 FieldName3      3
3 FieldName2      2    1
4 FieldName4      4
5 FieldName5      5    1
= vlookup(A1, table1!A:B, 2, 0)
= arrayformula(vlookup(offset(A1,,,counta(A1:A)), table1!A:B, 2, 0))