使用在线Excel时,有哪些方法可以引入计算函数?
摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
前言
在日常生活和工作中,我们都会或多或少的使用Excel中的计算公式函数,比如求和公式、平均数公式等。今天为大家整理了一些在线Excel中可以引入的公式函数。
基本函数
Excel中包含450个基本原生函数:比如常见的求和、求差函数,取最大值和最小值函数等。由于篇幅原因,原生函数的详细解释可以看这里。
如何在Excel中引入基本函数:

2.自定义函数的引入。(除了Excel自带的原生函数之外,用特定的业务用例创建自己的自定义函数,可以像定义任何内置函数一样定义和调用它们)

3.迭代计算/循环引用(可以通过使用先前的结果反复运行来帮助找到某些计算的解决方案)

4.异步函数的引入(AsyncFunction 函数来计算异步数据,该函数用在不能立刻获取计算结果的时候使用)

数组公式和动态数组
数组公式是指可以在数组的一项或多项上执行多个计算的公式,你可以将数组视为一行值、一列值或行值和列值的组合。数组公式可以返回多个结果,也可返回一个结果。动态数组用于替换数组公式。 任何可能返回多个结果的公式都可以称为动态数组公式。 当前返回多个结果并成功溢出的公式可以称为溢出数组公式。
如何在Excel中引入数组公式和动态数组:

动态数组的引入
2.Filter函数的引入(FILTER函数可以根据定义的条件过滤一系列数据)
FILTER函数基于布尔数组来过滤数组。
语法:
FILTER(array, include, if_empty?)
| 参数 | 必需 | 描述 |
|---|---|---|
| array | 是 | 要进行过滤的数组或区域 |
| include | 是 | 一个布尔数组,其高度或宽度与要进行过滤的数组相同 |
| [if_empty] | 否 | 如果所包含数组中的所有值均为空(filter结果为空)的返回值 |

RANDARRAY函数返回一个随机数数组。用户可以指定要填充的行和列的数量,最小值和最大值,以及返回整数或十进制值。
语法:
RANDARRAY(rows?, columns?, min?, max?, whole_number?)
| 参数 | 必需 | 描述 |
|---|---|---|
| [rows] | 否 | 要返回数据的行数 |
| [columns] | 否 | 要返回数据的列数 |
| [min] | 否 | 随机数的最小值 |
| [max] | 否 | 随机数的最大值 |
| [whole_number] | 否 | 返回整数或浮点数:整数则为true,浮点数为false。 |

SEQUENCE函数可以生成一个依序组成的数字序列,例如1,2,3,4。
语法:
SEQUENCE(rows, columns?, start?, step?)
| 参数 | 必需 | 描述 |
|---|---|---|
| rows | 是 | 要返回数据的行数 |
| [columns] | 否 | 要返回数据的列数 |
| [start] | 否 | 序列的第一个数字 |
| [step] | 否 | 序列中的递增值 |

UNIQUE函数返回列表或区域中的唯一值列表。
语法:
UNIQUE(array, by_col?, occurs_once?)
| 参数 | 必需 | 描述 |
|---|---|---|
| array | 是 | 返回唯一值的区域或数组 |
| [by_col] | 否 | 指示如何比较的布尔值;省略或为false为按行; true时为按列 |
| [occurs_once] | 否 | 布尔值,为true时返回出现一次的唯一值,为false或省略时返回所有的唯一值 |

SORTBY函数根据相应区域或数组中的值对区域或数组的内容进行排序。
语法:
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], …)
| 参数 | 必需 | 描述 |
|---|---|---|
| array | 是 | 要排序的数组或区域 |
| by_array1 | 是 | 要对其进行排序的数组或区域 |
| [sort_order1] | 否 | 要用于排序的顺序。 1表示升序,-1 表示降序。 默认值为 "升序"。 |
| [by_array2] | 否 | 要对其进行排序的数组或区域 |
| [sort_order2] | 否 | 要用于排序的顺序。 1表示升序,-1 表示降序。 默认值为 "升序"。 |

隐式交集逻辑将多个值减少为一个值。 用户可以在公式之前添加 @ 来强制公式返回单个值,因为单元格只能包含一个值。 如果公式返回一个值,则隐式交集不会执行任何操作(即使是在后台完成的)。 逻辑工作方式如下:
- 如果该值是单个项, 则返回该项。
- 如果该值为一个区域, 则从与公式位于同一行或列的单元格中返回值。
- 如果该值为数组, 则选择左上角的值。

LAMBDA函数集
LAMBDA函数使您能够使用 Excel 自己的公式语言定义自定义函数。
语法:
LAMBDA([parameter1, parameter2, …,] calculation)

返回一个数组,通过应用LAMBDA将数组中的每个值映射到一个新的值,形成一个数组。
语法:
MAP(array1, lambda_or_array<#>)
MAP函数的语法有以下参数。
- array1
一个要被映射的数组。 - lambdaorarray<#>
一个LAMBDA,它必须是最后一个参数,它必须为每个传递的数组提供一个参数,或者是另一个要被映射的数组。

通过对每个值应用LAMBDA,将一个数组减少为一个累积值,并返回累积器中的总数值。
语法:
REDUCE(initial_value, array, lambda(accumulator, value))
- initial_value
设置累积器的起始值。 - array
一个要被减少的数组。 - lambda
调用一个LAMBDA来减少数组。该LAMBDA需要两个参数。- accumulator
数值加起来,作为最终结果返回。 - value
应用于数组中每个元素的计算。
- accumulator

通过对每个值应用LAMBDA来扫描一个数组,并返回一个拥有每个中间值的数组。
语法:
SCAN([initial_value], array, lambda(accumulator, value))
- initial_value
设置累积器的起始值。 - array
一个要扫描的数组。 - lambda
一个LAMBDA,被调用来扫描数组。该LAMBDA需要两个参数。- accumulator
数值加起来,作为最终结果返回。 - value
应用于数组中每个元素的计算。
- accumulator

通过应用LAMBDA,返回一个指定行和列大小的计算数组。
语法:
MAKEARRAY(rows, cols, lambda(row, col))
- rows
阵列中的行数。必须大于零。 - cols
阵列中的列数。必须大于零。 - lambda
调用一个LAMBDA来创建数组。该LAMBDA需要两个参数。- row
数组的行索引。 - col
数组的列索引。
- row

将LAMBDA应用于每一行,并返回结果的数组。例如,如果原始数组是3列2行,返回的数组是1列2行。
语法:
BYROW(array, lambda(row))
- array
一个要用列来分隔的数组。 - lambda
一个LAMBDA,将一个行作为单一参数,并计算一个结果。该LAMBDA需要一个单一的参数。- row
阵列中的一行。
- row

将LAMBDA应用于每一列,并返回结果的数组。例如,如果原始数组是3列2行,返回的数组是3列1行。
语法:
- array
一个要用列来分隔的数组。 - lambda
一个LAMBDA,将一个列作为单一参数,并计算一个结果。该LAMBDA需要一个单一的参数。- column
阵列中的一个列。
- column

检查LAMBDA中的值是否丢失,并返回TRUE或FALSE。
语法:
ISOMITTED(argument)
- argument
你想测试的值,如LAMBDA参数。

除了上述的计算公式函数之外,还可以在实战代码库中找到更多的在线表格的demo,包括Excel导入导出、数据绑定、打印、复制粘贴、数据校验等功能模块,欢迎大家的访问。
扩展链接:
项目实战:在线报价采购系统(React +SpreadJS+Echarts)
Svelte 框架结合 SpreadJS 实现纯前端类 Excel 在线报表设计
使用在线Excel时,有哪些方法可以引入计算函数?的更多相关文章
- PHP导出excel时数字变为科学计数的解决方法
在数据导出到excel时数字格式不对,一般分为以下两种情况. 1.excel单元格设置长度不够 解决方法: //在excel.php文件中 $objActSheet = $objPHPExcel-&g ...
- C# 解析excel时,字段内有内容,却读取不到的解决方法
C# 解析excel时,字段内有内容,却读取不到的解决方法:"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ...
- Gridview数据导出excel时身份证号码为科学计数法的解决方法
if (e.Row.RowType == DataControlRowType.DataRow) { string id = this.GridView1.DataKeys[e.Row.RowInde ...
- Ecshop 后台导出订单Excel时, 内存溢出的解决方法
今天继续跟大家分享一下,在我配置Ecshop时的问题. 今天的问题是在后台想要导出订单列表Excel时出现的内存溢出.错误提示如下 问题: Fatal error: Allowed memory s ...
- LuckySheet一款在线Excel使用心得
1.LuckySheet简介 Luckysheet ,是一款国产的纯JS实现的类似excel的在线表格,功能强大.配置简单.完全开源. 开源地址 https://gitee.com/mengshuke ...
- 手把手带你实现基于 Vite+Vue3 的在线Excel表格系统
今天,葡萄带你了解如何基于Vite+Vue3实现一套纯前端在线表格系统. 在正式开始项目介绍之前,首先咱们首先来介绍一下Vite和Vue3. Vue3 2020年09月18日Vue.js 3.0发布, ...
- java 读取excel poi 和cell 方法
http://poi.apache.org/spreadsheet/quick-guide.html http://www.aspose.com/docs/display/cellsjava/Eval ...
- 从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法
注意,64位系统,用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统:使用的是64位的Windows Server ...
- 用POI导出excel时,较长的数字不想被自动变为科学计数法的解决方式(转)
做过很多次导出excel了.都碰到一个问题,内容里如果包含一个比较长的数字,比如订单号“2546541656596”,excel会自动变成科学计数法... 弄过好几次都没有解决,最近又要导出excel ...
- 对.NET中导出数据到EXCEL的几种方法探讨
最近在做一个报表系统的时候,需要把DATASET中的数据导到EXCEL当中,于是在网上找了一遍,发现了好几种方法,本来以为应该差不多,但后来经过一一试用后,发现在性能上真的差别很大,现在就介绍一下,同 ...
随机推荐
- 2022-07-29:一共有n个人,从左到右排列,依次编号0~n-1, h[i]是第i个人的身高, v[i]是第i个人的分数, 要求从左到右选出一个子序列,在这个子序列中的人,从左到右身高是不下降的。
2022-07-29:一共有n个人,从左到右排列,依次编号0~n-1, h[i]是第i个人的身高, v[i]是第i个人的分数, 要求从左到右选出一个子序列,在这个子序列中的人,从左到右身高是不下降的. ...
- 2021-04-22:给定很多线段,每个线段都有两个数[start, end],表示线段开始位置和结束位置,左右都是闭区间,规定:1)线段的开始和结束位置一定都是整数值,2)线段重合区域的长度必须>=
2021-04-22:给定很多线段,每个线段都有两个数[start, end],表示线段开始位置和结束位置,左右都是闭区间,规定:1)线段的开始和结束位置一定都是整数值,2)线段重合区域的长度必须&g ...
- 软硬件--智能穿戴常见BUG及原因分析
软硬件--智能穿戴常见BUG及原因分析 1.手表有常亮功能(类似熄屏表盘),开启常亮暗屏状态下 按侧键,设备时间出现倒退现象:频率切换相关问题: 2.手表有常亮功能(类似熄屏表盘),开启常亮暗屏状态下 ...
- Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log、App、徽章、插画、头像场景生成,各种风格选择:科技风、运动风
Midjourney|文心一格prompt教程[Text Prompt(上篇)]:品牌log.App.徽章.插画.头像场景生成,各种风格选择:科技风.运动风 1.撰写 Text Prompt 注意事项 ...
- 各种版本的Linux 镜像下载网址
今天发现Linux 镜像下载网址感觉很不错,分享给有需要的小伙伴们 访问地址 Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\ubuntu\debia ...
- Kubernetes 证书详解
K8S 证书介绍 在 Kube-apiserver 中提供了很多认证方式,其中最常用的就是 TLS 认证,当然也有 BootstrapToken,BasicAuth 认证等,只要有一个认证通过,那么 ...
- 驱动开发:内核扫描SSDT挂钩状态
在笔者上一篇文章<驱动开发:内核实现SSDT挂钩与摘钩>中介绍了如何对SSDT函数进行Hook挂钩与摘钩的,本章将继续实现一个新功能,如何检测SSDT函数是否挂钩,要实现检测挂钩状态有两种 ...
- Kubernetes 集群管理:Kurator or Kubespray
摘要:Kubespray 和 Kurator 就是这类开源工具的典型代表.本文将对这两款工具进行比较. 本文分享自华为云社区<Kubernetes 集群管理:Kurator or Kubespr ...
- 理解ASP.NET Core - 全球化&本地化&多语言(Globalization and Localization)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 在众多知名品牌的网站中,比如微软官网.YouTube等,我们经常可以见到"切换 ...
- Nginx SSL 双向认证,key 生成和配置
一.安装Nginx和OpenSSL yum install nginx openssl -y 二.SSL 服务器 / 客户端双向验证证书的生成 创建一个新的 CA 根证书,在 nginx 安装目录下新 ...