javascript - 如何使用应用程序脚本来计算单元格数量并根据它更改其他列中的上下文?
问题描述
目前,我的谷歌表格中有三列,第 1 列是公司名称,第 2 列是行业名称,第 3 列是营业额(但数据重复)。我想计算相同的公司名称并根据该数字使用应用程序脚本划分营业额。
这是我的原始电子表格。 https://docs.google.com/spreadsheets/d/1CPMXkOKzOjGEwcR7OdK7SCEO2Nri_DlN_GBoMLSwtTA/edit?usp=sharing
解决方案
请查看下面的代码片段,它应该会有所帮助。我刚刚创建了一个公司在电子表格中出现多少次的哈希值,然后使用这个哈希值更新了初始数据。
const data = [
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "B", turnover: 20000},
{company: "B", turnover: 20000},
]
const hash = {}
for (let d of data) {
if (d.company in hash) hash[d.company] += 1
else hash[d.company] = 1
}
const updatedData = data.map(d => ({...d, turnover: d.turnover/hash[d.company] }))
console.log(updatedData)
你也可以使用Map
,这是我的建议!
const data = [
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "A", turnover: 10000},
{company: "B", turnover: 20000},
{company: "B", turnover: 20000},
]
const hash = new Map();
for (let d of data) {
const currentVal = hash.get(d.company);
if (currentVal) hash.set(d.company, currentVal + 1)
else hash.set(d.company, 1)
}
const updatedData = data.map(d => ({ ...d,
turnover: d.turnover / hash.get(d.company)
}))
console.log(updatedData)
推荐阅读
- javascript - 在 Enzyme 中测试延迟加载的组件
- python - Python/Selenium-类元素不能被点击
- r - 解释 ggplot 中的 geom_smooth() 线性关系结果
- java - Spring Kafka Listener Thread 名称的含义?
- node.js - 如何在没有 sudo 权限的 CentOS 上安装 Node.js
- node.js - 在 Mac 上安装 Homebrew 后,Npm 包命令停止工作
- c# - 你如何将一个空元组从 f# 返回到 c#?
- c - 将每个单词存储在二维字符串 C
- flutter - 如何让马拉雅拉姆语字体与颤振应用程序一起使用?
- c++ - C++:使用成员函数的二元运算符重载