gpt4 book ai didi

javascript - Google Apps 脚本内连接范围

转载 作者:行者123 更新时间:2023-12-03 10:25:54 24 4
gpt4 key购买 nike

我想通过“ID”“内连接”2个数据范围(表1和2)并将其结果输出到表3中(如下所示)

对于所有工作表,第一行只是标题,实际值从第二行开始。

工作表 1 是整个数据库(3000 行),工作表 2(1000 行)是工作表 1 的选择以及附加数据。每个条目 (ID) 在每个工作表中仅出现一次。

工作表 3 应仅显示工作表 2 的行,但包含工作表 1 相应行(按 ID)的数据。

varsheetOneVals=sheetOne.getDataRange().getValues();
sheetOneVals.splice(0, 1);

varsheetTwoVals=sheetTwo.getDataRange().getValues();
sheetTwoVals.splice(0, 1);

如何做到这一点? https://stackoverflow.com/a/17500836/379777几乎是我想要的,只是它使用了 key ,而我的情况下没有。

表 1:

     A         B           C      D
------------------------------------
1 | Name | Description | Price | ID |
------------------------------------
2 | ABC | Bla1 | 10 | 123 |
------------------------------------
3 | DEF | Bla2 | 8 | 234 |
------------------------------------
: | : | : | : | : |
: | : | : | : | : |
------------------------------------

表 2:

    A     B      C     D         E
---------------------------------------
1 | ID | Cat1 | Cat2 | Cat3 | Nonsense |
---------------------------------------
2 | 123 | B | C | D | xyz |
---------------------------------------
: | : | : | : | : | : |
: | : | : | : | : | : |
---------------------------------------

表 3(所需结果):

     A       B      C     D       E         F         G
----------------------------------------------------------
1 | ID | Cat1 | Cat2 | Cat3 | Name | Description | Price |
----------------------------------------------------------
2 | 123 | B | C | D | ABC | Bla1 | 10 |
----------------------------------------------------------
: | : | : | : | : | : | : | : |
: | : | : | : | : | : | : | : |
----------------------------------------------------------

最佳答案

您只想要逻辑还是需要有人来编码?简单快速的逻辑是:

开始并对象,以Key作为ID。
迭代工作表 1 并将所有值保存为这些 ID 中的对象。
迭代表 2,在 ID 中再次保存新键。
将对象解析为 double 组。

这是一些 stub :

Initiate myObject
Get Sheet1 and sheet2
for( lines in sheet 1 )
myObject[ lineId ] = {}
for( cols in sheet 1[lines] )
myObject[ lineId ][ columnHeading ] = columnValue

for( lines in sheet 2 )
for( cols in sheet 1[lines] )
myObject[ lineId ][ columnHeading ] = columnValue

您最终会得到一个重复的 ID,作为属性键和其中的属性及其值,但没什么大不了的。

Initiate arrayToPaste
Initiate currLine with 0
for( props in myObject )
Initiate first array key as an Array
for( keys in myObject[ props ] ){
arrayToPaste[ currLine ].push(myObject[ props ][ key ])
}
Increase currLine

Paste arrayToPaste to sheet

只需将标题插入某处,可以在初始化中、第一个 for 之后、粘贴时、作为不同的数组等......

我还有一个问题,为什么要使用parseInt?

关于javascript - Google Apps 脚本内连接范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29403914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com