我正在尝试将具有相同标识的 2 行组合起来。我一直在寻找解决方案,但不知何故找不到可行的解决方案。我正在尝试为我的股票制作跟踪器,但如果我添加相同的资产,我希望它能够结合信息。我制作了一个表格,可以将交易添加到投资组合中。因此,如果存在重复资产,则新副本将始终位于最后一行。
我既不是编程专家,也不是谷歌表格专家,但这是伪代码:
- 检查第 2 列(资产 ID)中是否有重复项,如果有:
- 将最后一行的第 1 列中的值复制到现有行(它是购买日期的列);
- 资产的 ID 在第 2 列中,因此可以保持不变;
- 金额在第 3 列,它应该将最后一行的金额添加到现有行第 3 列。
这是一个示例表:https ://docs.google.com/spreadsheets/d/1AEdljHtXUOnRJ1kxbziqKAjYo5EqGZjjnWOx1mbeTI0/edit#gid=0
我尝试了几件事,但我被卡住了。我已经编写了一个代码来遍历数据,找到重复项并将其添加到列表中。但在那之后,我只是不知道如何去做。
你可能会嘲笑我的代码,但从某个角度来看,它就像在兜圈子。
function readData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Portfolio");
var rangeArray = formSS.getRange("B2:B" + formSS.getLastRow()).getValues(); //makes an array of values from column B, but each item is in array in itself.
rangeArray = [].concat.apply([],rangeArray);//takes the elements outside their own array;
var sortedRangeArray = rangeArray.sort();//sort the items to a new array
duplicates=[];//make a list of duplicates to identify
for (var i =0; i < 1;sortedRangeArray.length, i++)//iterate through sortedArray
if(sortedRangeArray[i+1] === sortedRangeArray[i]){
duplicates.push(sortedRangeArray[i]);//if a duplicate is found, push it to the duplicates list
}
var str = duplicates[0];//identify the duplicate, there is only one anyway.
for (var k = 0; k < sortedRangeArray.length; k++) {
var row = sortedRangeArray[k];
if(row[SEARCH_COL_IDX] == str) {
var index = rangeArray.findIndex(str);//I thought it might help defining the position
}}}```