在过滤应用脚本 google sheet 后在数组中创建公式
Create Formula inside array after filter app script google sheet
我尝试在过滤此数组后在数组内创建公式,我的数组有时不给我价格,有时不给我总价:
我需要如果数组中的价格为 0.0 我想将其更改为 TotalPrice/Qty 就像第一个数组 600/20=30 ,价格是 30. 在第二个数组中
这是我的代码:TotalPrice 是 0.0 do QtyPrice=TotalPrice : 1020=200,你的 TotalPrice 是 200。
我需要这样的输出:
[{Qty:20, Price:30, TotalPrice:600}, {Qty:10, Price:20, TotalPrice:200},
{Qty:5, Price:100, TotalPrice:500}]
然后我用这个代码把它放到sheet:
sh.getRange(5,5,oA.length, oA[0].length).setValues(oA);
谢谢。
function arrayFormula() {
const data = '[{"Qty":"20", "Price":"0.0", "TotalPrice":"600"}, {"Qty":"10", "Price":"20",
"TotalPrice":"0.0"}, {"Qty":"5", "Price":"100", "TotalPrice":"500"}]';
Logger.log("Array: "+ data);
const obj = JSON.parse(data);
const ss = SpreadsheetApp.getActive();
const oA = obj.map(obj => [obj.Qty, obj.Price,obj.TotalPrice]);
// put array return to sheet
//sh.getRange(5,5,oA.length, oA[0].length).setValues(oA);
var filtered = oA.filter(function (el) {
if (el[1]!=0) {
return obj.Total/obj.Qty;
} else {
return false
}
});
console.log("Array After Filter: " + filtered);
}
Return 我:
1:16:27 PM Info Array: [{"Qty":"20", "Price":"0.0", "Total":"600"}, {"Qty":"10",
"Price":"20", "Total":"0.0"}, {"Qty":"5", "Price":"100",
"Total":"500"}]
1:16:27 PM Info Array After Filter:
赞这张照片:
enter image description here
大概是这样的:
function main() {
const data = `[
{"Qty":"20", "Price":"0.0", "TotalPrice":"600"},
{"Qty":"10", "Price":"20", "TotalPrice":"0.0"},
{"Qty":"5", "Price":"100", "TotalPrice":"500"}
]`;
const obj = JSON.parse(data);
const calc_price = obj =>
obj.Price == 0 ? obj.TotalPrice / obj.Qty : obj.Price;
const calc_total_price = obj =>
obj.TotalPrice == 0 ? obj.Price * obj.Qty : obj.TotalPrice;
const oA = obj.map(o => [o.Qty, calc_price(o), calc_total_price(o)]);
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
sh.getRange(5,5,oA.length,oA[0].length).setValues(oA);
}
输出:
我尝试在过滤此数组后在数组内创建公式,我的数组有时不给我价格,有时不给我总价: 我需要如果数组中的价格为 0.0 我想将其更改为 TotalPrice/Qty 就像第一个数组 600/20=30 ,价格是 30. 在第二个数组中 这是我的代码:TotalPrice 是 0.0 do QtyPrice=TotalPrice : 1020=200,你的 TotalPrice 是 200。
我需要这样的输出:
[{Qty:20, Price:30, TotalPrice:600}, {Qty:10, Price:20, TotalPrice:200},
{Qty:5, Price:100, TotalPrice:500}]
然后我用这个代码把它放到sheet:
sh.getRange(5,5,oA.length, oA[0].length).setValues(oA);
谢谢。
function arrayFormula() {
const data = '[{"Qty":"20", "Price":"0.0", "TotalPrice":"600"}, {"Qty":"10", "Price":"20",
"TotalPrice":"0.0"}, {"Qty":"5", "Price":"100", "TotalPrice":"500"}]';
Logger.log("Array: "+ data);
const obj = JSON.parse(data);
const ss = SpreadsheetApp.getActive();
const oA = obj.map(obj => [obj.Qty, obj.Price,obj.TotalPrice]);
// put array return to sheet
//sh.getRange(5,5,oA.length, oA[0].length).setValues(oA);
var filtered = oA.filter(function (el) {
if (el[1]!=0) {
return obj.Total/obj.Qty;
} else {
return false
}
});
console.log("Array After Filter: " + filtered);
}
Return 我:
1:16:27 PM Info Array: [{"Qty":"20", "Price":"0.0", "Total":"600"}, {"Qty":"10",
"Price":"20", "Total":"0.0"}, {"Qty":"5", "Price":"100",
"Total":"500"}]
1:16:27 PM Info Array After Filter:
赞这张照片: enter image description here
大概是这样的:
function main() {
const data = `[
{"Qty":"20", "Price":"0.0", "TotalPrice":"600"},
{"Qty":"10", "Price":"20", "TotalPrice":"0.0"},
{"Qty":"5", "Price":"100", "TotalPrice":"500"}
]`;
const obj = JSON.parse(data);
const calc_price = obj =>
obj.Price == 0 ? obj.TotalPrice / obj.Qty : obj.Price;
const calc_total_price = obj =>
obj.TotalPrice == 0 ? obj.Price * obj.Qty : obj.TotalPrice;
const oA = obj.map(o => [o.Qty, calc_price(o), calc_total_price(o)]);
const ss = SpreadsheetApp.getActive();
const sh = ss.getActiveSheet();
sh.getRange(5,5,oA.length,oA[0].length).setValues(oA);
}
输出: