把一个数组的值一个一个添加进空的数组_SpreadJS:强大的数组公式(Array Function)...

前言 | 问题背景

数组公式是电子表格中功能最强大且未充分利用的计算功能之一,允许用户使用更简单的计算替换数千个公式,同时提供相同的结果。例如,它们可用于轻松创建销售表中的另一个自动计算列,或创建一些过滤数据。使用数组公式的一些好处包括:

  • 在复杂的计算中消除了对中间公式的需求
  • 没有数组公式,有些计算是不可能的,因为它们需要使用整个值数组而不是单个值
  • 可以给出单个结果或多个结果
  • 确保一致性和速度,因为公式中使用的数组将存储在内存中

数组公式可以做得更多,但是本教程将重点介绍这些简单的示例,以便您开始使用SpreadJS中的数组公式。

要下载本教程的示例zip,请单击此处。

效果截图

2d117cb8973445a1b6fadc911001e130.png

设置JavaScript电子表格

我们可以先添加javascript/css引用并初始化Spread实例:

 SJS Array Formulas

然后我们可以加载一个已经有表格的预制工作簿:

 spread.fromJSON(ArrayFormulaTest);var activeSheet = spread.getActiveSheet();

使用数组公式添加表列

我们将添加的第一个数组公式是创建一个总列。通常,我们会为每个单元格创建一个公式,以将数量列乘以价格列。我们可以创建一个完成此工作的数组公式,而不是创建要填充的公式:

**= E3:E15 * F3:F15**

这将返回一个值数组而不是一个值,该值将应用于整个列。在SpreadJS中设置数组公式需要定义行,列,行计数,列数和公式,如下所示:

activeSheet.setArrayFormula(2, 6, 13, 1, "E3:E15*F3:F15");

然后我们可以格式化该新列:

spread.options.allowUserEditFormula = true;activeSheet.getCell(1, 6).value("Total");activeSheet.setFormula(15, 6, "SUM(G3:G15)");activeSheet.getRange(1, 6, 15, 1).formatter("$#,#");
69e0d358ea357f9b1c5b06e8af4b31c8.png

使用数组公式可以大大减少为每行创建总列通常所需的公式数量。

用数组公式汇总

数组公式的另一个用途是更容易地汇总数据。例如,您可能希望仅在满足特定条件时将值添加到一起,这是使用常规公式无法轻松完成的。通常,您将使用IF语句,当应用于一系列单元格时,它将返回正值和假值的数组。数组公式是在单个单元格中有效使用它的唯一方法。我们可以为此制作两个表:卖方销售和每个卖方按产品销售:

activeSheet.getCell(1, 8).value("Sales by Seller");activeSheet.getCell(2, 8).value("Seller");activeSheet.getCell(2, 9).value("Total");activeSheet.getCell(3, 8).value("Bob");activeSheet.getCell(4, 8).value("Chris");activeSheet.getCell(5, 8).value("Jill");activeSheet.getCell(7, 8).value("Sales by Product");activeSheet.getCell(8, 8).value("Seller");activeSheet.getCell(8, 9).value("Spread");activeSheet.getCell(8, 10).value("Wijmo");activeSheet.getCell(8, 11).value("C1 Studio");activeSheet.getCell(9, 8).value("Bob");activeSheet.getCell(10, 8).value("Chris");activeSheet.getCell(11, 8).value("Jill");
716f193ff073960ea9a2646fe8ca5022.png

我们可以从Sales by Seller表开始。在这种情况下,我们将使用数组公式为每个特定卖家添加所有销售。为了使公式更简单,我们可以继续添加一些自定义名称来使用:

activeSheet.addCustomName("Seller
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值