ONLYOFFICE 7.4版新增函数详解

news2024/9/21 1:52:05

ONLYOFFICE升级到7.4版本后,在其表格编辑器中新增了一些公式函数:SEQUENCEXMATCHEXPANDFILTERARRAYTOTEXTSORT,大大加强了对矩阵、数组的操作处理能力。这一组函数公式,在微软的Excel里面是专属于Office365和OfficeOnline版本的,也就是说那些使用破解单机版微软Office的使用者是用不了这些函数公式的,免费使用这些函数公式,只有使用ONLYOFFICE才可以。

一张图极简介绍使用方法

入口

首先看看在表格编辑器里面哪里找到这些函数。Sequence公式函数位于数学和三角学分类之中:

arraytotext公式函数位于文字和数据分类之中:

其它新增的的函数,XMATCHEXPANDFILTERSORT,都在查找和参考分类之中:

从这个入口开始使用函数的好处就是,可以弹出一个对话框向导,简单提示各个参数的数据类型、意义:

用熟练了之后就可以自己直接在公式栏手写公式了。另外,Office类软件的表格编辑器中的各种函数公式的名称拼写都不区分大小写。

关于数组矩阵

这里我不从严区分名词概念,究竟是叫做数组,还是叫做矩阵,还是叫做对象,我搜索到网上管这种东西的称谓五花八门,反正只要你们知道这是指表格里面划定的某一行几个数或者某一列几个数或者某个几行乘以几列的一片数字,就够了。

如图所示,这里有和微软的微小差异,微软的office里面叫做动态数组,有自动溢出功能,细节这里略去,而ONLYOFFICE里面,和WPS的操作类似,是用鼠标选择矩阵操作公式所要填充影响的矩阵区域后,在其公式输入框中输入公式,然后按键盘快捷键ctrl+shift+enter将数据生成填入,如果手选矩阵小于公式函数内容的尺寸,就会截断内容:

该矩阵截断了右两列和下三行。反之,如果手选矩阵大于公式函数内容的尺寸,就会自动用#N/A补全矩阵:

因此使用者需要自己选择准确操作的区域。

序列生成函数sequence

上面已经展示了sequence函数的简单用法了,这里复习一下上一期文章在表格文件里面绘制的正七边形

并且还附带计算了一下七等分圆周的角度数给标注上去了,这里就用到了新增的sequence函数。

这个函数公式作用是制作生成一个序列数组矩阵。

语法

sequence([行数], [列数], [起始值], [步长值])

参数意义
行数要生成返回的矩阵的行数,如果省略,自动填充所选择的矩阵的行数
列数要生成返回的矩阵的列数,如果省略,自动填充所选择的矩阵的列数
起始值序列的起始值,如果省略,序列将从1开始
步长值系列中每个数的递增值,如果省略,序列每次将增加1,设为负数则可以递减

举例

参数语法中方括号[]括起来的参数是非必需的可选的参数,可以省略,但是不能省略其后的逗号,例如下图省略了所有四个参数的写法:

无论是微软官网手册还是谷某官网手册里该函数第一个参数不可省略,而我在ONLYOFFICE中亲测所有四个参数都可以省略。微软和谷某的官网手册的页面地址放在文末的参考文献中,欢迎自取。ONLYOFFICE的各种函数公式的使用细节,几乎都可以去谷某和微软的Office官网手册查找帮助学习,非常标准非常方便,但是这里仅仅推荐阅读谷某和微软的帮助手册的英文页面版本,她俩的中文页面版本都是机器翻译,惨不忍睹。

更进一步深入扩展使用数组类函数,可以在其参数内使用数学公式,也可以把所生成的序列矩阵作为参数传递给在外面再套一层公式,比如上面的正七边形示例。

再举一例,使用sequence绘制日历,则周一到周日可以自动填充,公式为

=TEXT(SEQUENCE(1,7,"2023/6/26",1),"ddd")

日矩阵数组的自动填充公式为:

=SEQUENCE(6,7,"2023/6/26",1)

借助于index函数可以从已有的数组矩阵里面选择抽取需要的数据够成新的矩阵,比如把全班同学按照学号的单双号来划分为红蓝两队来做军事对抗演习:

序列查找匹配函数xmatch

XMATCH会返回与指定值相匹配的项在数组或范围中的相对位置,在数组或单元格区域搜索指定项,然后返回该项的相对位置。

语法

XMATCH(查找内容, 查找范围, [匹配模式], [搜索模式])

参数意义
查找内容要搜索的值,例如,42、"Cats" 或 B24
查找范围要搜索的范围,此范围必须为单行或单列
匹配模式查找内容匹配的方式:0为默认值表示完全匹配,1表示查找等于或大于查找值的最小值,-1则反之,2位通配符方式匹配
搜索模式搜索查询范围的方式:1位默认值表示从前向后搜索,-1表示从后向前搜索,2表示二进制搜索,需要先将范围按升序排序,-2则反之

举例

参考文献中微软、谷某帮助页面所举的例子这里就不再重复展示了。这里我从实际出发,xmatch函数经常配合index函数来从大数据表格中精确取回某一行某一格子的数据,就拿自己先前川普模拟器的模拟交易数据记录表格里做数据分析

最终效果就是用多个格子拼合成一句话,想查看别的物业的销售简况,只需要填写C列的这一个格子里的地产名,就可以自动取得更新后面的这些数据。

税前销售价格一栏的公式为:

=INDEX(Sheet1!J:J,XMATCH(C2,Sheet1!G:G))

其中引用到的第一张表,如下图所示

xmatch函数从G列查找地产名为这家单位的,如上图所示,有两行出现,该函数默认返回搜索到的第一条命中记录也就是第229行,用这个行号来继续在J列查找到税前销售价格取回值来。类似的,成交价一栏的公式为:

=INDEX(Sheet1!L:L,XMATCH(C2,Sheet1!G:G,,-1))

与上一条公式非常类似,区别在于这里的xmatch函数的第三个参数用,逗号省略,引入了第四个参数-1,从后向前搜索,从而搜索到上图中的该次销售的成交记录行在第234行,从而进一步取到其L列的成交价数值。类似的,成交溢价收入一栏的公式为:

=INDEX(Sheet1!M:M,XMATCH(C2,Sheet1!G:G,,-1))

类似的,从保密成绩表中翻译为行业黑话的公式,这里甚至查询嵌套了查询:

=INDEX(I3:L3,XMATCH(INDEX(B2:B12,XMATCH(D2,A2:A12)),I2:L2,-1))

矩阵数组填充扩展函数EXPAND

可以将数组展开或者填充到指定的行或列的尺寸

语法

Expand(矩阵对象, [行数], [列数], [要填充的值])

参数意义
矩阵对象要展开的数组矩阵对象
行数扩展到多少行,省略则为原始矩阵行数
列数扩展到多少列,省略则为原始矩阵列数
要填充的值省略则填充#N/A

举例

这个函数的作用,我用来给缺零的序列补零用,比如:

序列删选函数filter

基于定义的条件,返回过滤后的源范围版本,筛选一系列数据,其中仅包含满足指定条件的行和列

语法

FILTER(范围,条件, [空时返回值])

参数意义
范围要筛选的数组或区域
条件布尔值数组,其高度或宽度与数组相同,与范围的首行或首列对应的一行或一列,其中包含的是true或false值或得出true或false值的数组公式
空时返回值所含数组中的所有值都为空(筛选器不返回任何内容)时返回的值

举例

还是用上文提到的川普模拟器举例:

我想查找这一段时期内的卖出有亏损的交易,就如下图所示,从M列成交溢价收入项目查找小于零的负数,就是亏损的,返回对应该次交易行数的G列地块名称:

公式如下

=FILTER(Sheet1!G229:G242,Sheet1!M229:M242<0)

第二个参数可以多个条件与或操作,例如上面构造的虚拟成绩表中统计班级考试里面优良可差各有哪些同学:

=FILTER(A2:A12,(J2<B2:B12)*(B2:B12<I2))

用星号*连接两个序列判断式执行与的运算如上图所示;

用加号+连接两个序列判断式执行或的运算

=FILTER(A2:A12,(J2<B2:B12)+(B2:B12<I2))

判断式可以是等于=、小于<、大于>,在外层套一个NOT()执行非运算或者不等于不小于不大于

=FILTER(A2:A12,not(B2:B12<I2))

序列转字符串函数arraytotext

返回任意指定区域内的文本值的数组。 它传递不变的文本值,并将非文本值转换为文本。

语法

arraytotext(序列, [格式])

参数意义
序列要返回为文本的数组
格式返回的数据的格式,默认为0,易于阅读的简明格式;1则包含转义字符和行定界符的严格格式。

举例

我实在是想不出这个函数有什么实用有意义的用处,只想到可以用来群发广告邮件,比如表中记录了很多目标邮件地址,使用该函数把这些邮箱地址拼接成一整行字符串:

=ARRAYTOTEXT(L2:L6)

然后在Office里面ctrl+c复制这个群发格子,打开浏览器,登录自己邮箱,撰写邮件,在发送目标地址栏ctrl+v粘贴字符串,就可以直接自动把这多个人的邮件一次粘贴进去了,非常方便:

配合同样新推出的函数sequence,可以在一个格子里面生成有序的序列,例如这里生成了一个三行五列序列数组:

=ARRAYTOTEXT(SEQUENCE(3,5,1,1),1)

这里ARRAYTOTEXT函数的第二个参数设为1,则生成的字符串用分号;区分行,用逗号,区分列,从而清晰的在一行文本中展示三行五列的数组。

再来看看26个英文字母不用手敲而用公式来生成:

=ARRAYTOTEXT(CHAR(SEQUENCE(26,,CODE("A"))))

我其实很奇怪发明这个公式的表姐是不会盲打键盘找不着26个英文字母都在哪里吗?

数组矩阵排序sort函数

依据一列或多列中的值对给定数组或范围中的各行进行排序

语法

sort(范围, [排序依据列], [升降序], [按列排序])

参数意义
范围要排序的区域或数组,返回的数组与所提供的数组参数的形状相同
排序依据列范围内或范围之外的某个范围中的某列的列号,该列中的值指定了排序顺序。指定为排序依据列的范围必须是行数与范围相同的单个列,省略该值则以范围最左列为排序依据
升降序1表示升序(默认值),-1表示降序
按列排序一个逻辑值,指示所需的排序方向;False表示按行排序(默认值),True表示按列排序

举例

sort函数搭配filter函数可以从巨大的矩阵中提取隐藏在数据中的意义,例如每日鹰机系列图文

的态势图就是用在线版ONLYOFFICE做的,其中输入的原始数据是公开的adsb信号数据

我认为飞行高度越低,则飞机就越是刚起飞或马上就要降落的状态也就是离飞机场越近,或者和海面水上舰艇越近,或者是在执行反潜任务对海攻击任务的状态,那我就:

=SORT(FILTER(Sheet1!A2450:I2652,Sheet1!I2450:I2652>0),9,1)

先用filter函数将矩阵按照高度列I列把有数值的条目行抽取出来形成矩阵,再在外面套一层sort排序函数,按照第九列也就是I列按照高度从低到高排序,就可以上往下查看哪里飞得低了,泰国这飞机在南海这地方才飞六百来米高度也挺奇怪的。

再以川普模拟器为例,之前有竞拍次数的计算方法:

这里再把竞拍条目行提取出来从大到小排序一下:

=SORT(FILTER(Sheet1!A500:AM654,Sheet1!AK500:AK654>0),37,-1)

总结一下

参考文献:

SEQUENCE 函数(Microsoft 365 支持)

SEQUENCE 函数(Google 文档编辑器帮助)

XMATCH 函数(Microsoft 365 支持)

XMATCH 函数(Google 文档编辑器帮助)

XMATCH Function(ONLYOFFICE helpcenter)

EXPAND 函数(Microsoft 365 支持)

EXPAND Function(ONLYOFFICE helpcenter)

FILTER 函数(Microsoft 365 支持)

FILTER(Google 文档编辑器帮助)

FILTER Function(ONLYOFFICE helpcenter)

ARRAYTOTEXT 函数(Microsoft 365 支持)

ARRAYTOTEXT Function(ONLYOFFICE helpcenter)

SORT 函数(Microsoft 365 支持)

SORT(Google 文档编辑器帮助)

SORT Function(ONLYOFFICE helpcenter)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

libevent(15)bufferevent filter的过滤器及例子

一、bufferevent filter简单说明 filter之类的东西&#xff0c;相信有php框架或java springboot经验的程序员应该很熟悉&#xff0c;就是加载在输入流之前或输出流之后的一个处理器&#xff0c;用来从业务处分离开来做一些额外的事情。 &#xff08;1&#xff09;读取&#xf…

vscode配置终端默认为git bash

vscode配置终端默认为git bash 文章目录 vscode配置终端默认为git bashctrl shift p 打开设置添加 git bash 并设为默认终端 ctrl shift p 打开设置 添加 git bash 并设为默认终端 注意不要配置 git-bash.exe 的路径。 如果配置为 git-bash.exe 路径&#xff0c;则会单独打…

阿里云服务器ping不通如何解决?

阿里云服务器ping不通&#xff1f;什么原因&#xff1f;在安全组中允许【全部 ICMP(IPv4)】&#xff0c;当然阿里云服务器禁ping也是通过配置安全组的ICMP规则来实现的&#xff0c;阿里云服务器网来详细说下安全组开通ping功能教程&#xff1a; 目录 阿里云服务器ping不通的解…

Node Sass version 6.0.1 is incompatible with ^4.0.0问题解决

运行环境背景 操作系统&#xff1a;Windows 10 64位 node版本&#xff1a;v16.19.1 npm版本&#xff1a;8.19.3 解决方案 卸载当前版本的node-sass和node-loader npm uninstall node-sass npm uninstall node-loader 重新安装指定版本 npm i node-sass6.0.1 node-loade…

计算机图形学综述(一)

计算机已经成为快速、经济地生成图片的强大工具。实际上已经没有哪个领域不能从使用图形显示中获益&#xff0c;因此也就不奇怪为什么计算机图形学的应用是那么广泛。虽然早期的工程和科学上的应用必须依赖于昂贵而笨重的设备&#xff0c;但是计算机技术的发展已经将交互式计算…

sharding-jdbc分片功能学习笔记

sharding-jdbc是sharding-sphere下的一个模块&#xff0c;可以理解为增强版的jdbc&#xff0c;用于解决分库分表、读写分离问题&#xff0c;本文基于4.1.1版本进行说明数据分片功能的流程 该版本提供了如下功能 1.数据分片&#xff08;包括强制路由功能&#xff09; 2.读写分…

win10系统下安装qt5.12.0软件

一、软件下载 1、Qt开源社区下载 下载地址&#xff1a;https://download.qt.io/archive/qt/5.12/5.12.10/qt-opensource-windows-x86-5.12.10.exe 社区地址&#xff1a; Index of /archive/qt/5.12/5.12.10 2、百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1Sqi…

举例说明什么是卷积计算

卷积计算是一种数学运算&#xff0c;主要用于信号处理、图像处理等领域。它涉及到两个函数&#xff08;通常称为信号和核&#xff09;的互相关运算。在图像处理中&#xff0c;卷积计算通常用于实现图像的平滑、锐化、边缘检测等操作。 以图像处理为例&#xff0c;我们可以用一个…

【面试题24】MySQL如何给一个1000万的表安全的加字段

文章目录 一、前言二、MySQL表添加字段的方案2.1 ALTER TABLE 添加字段2.2 Online Alter Table2.3 Percona Toolkit2.4 给表新增字段2.5 使用触发器添加字段 总结 一、前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP面试专区。 计划将全覆盖PHP开发领域所有的面试题&#xf…

【AIGC】18、MobileSAM | 首个专为移动端设计的更快的 SAM

文章目录 一、背景二、方法2.1 耦合蒸馏2.2 从半蒸馏到解耦蒸馏 三、效果 论文&#xff1a;FASTER SEGMENT ANYTHING: TOWARDS LIGHTWEIGHT SAM FOR MOBILE APPLICATIONS 代码&#xff1a;https://github.com/ChaoningZhang/MobileSAM 出处&#xff1a;韩国庆熙大学 时间&am…

MP4视频格式和mp4v2的移植

目录 1、视频文件 2、MP4 3、MP4学习方法 4、MP4文件格式解析 5、MP4Info工具使用 6、mp4v2移植和播放 6.1、下载mp4v2 6.2、配置并编译 6.3、部署 6.4、编译sample 6.5、准备TF卡 6.6、运行和测试 7、MP4打包源码解析 8.添加网络telnet调试 8.1、为什么添加teln…

java进程注入

本文重点java Instrumentation java Instrumentation指的是可以用独立于应用程序之外的代理&#xff08;agent&#xff09;程序来监测和协助运行在JVM上的应用程序。这种监测和协助包括但不限于获取JVM运行时状态&#xff0c;替换和修改类定义等。简单一句话概括下&#xff1a;…

11 通信的基本概念

目录 通信分类概览 串行通讯与并行通讯 全双工、半双工及单工通讯 同步通讯与异步通讯 通讯速率 注意 通信分类概览 串行通讯与并行通讯 串行通讯是指设备之间通过少量数据信号线(一般是 8 根以下)&#xff0c;地线以及控制信号线&#xff0c;按数据位形式一位一位地传输…

Windows下创建进程的理解

创建windows进程&#xff0c;需要考虑两个点&#xff0c;即session和权限问题。了解这两点&#xff0c;网络上服务创建界面进程&#xff0c;管理员权限进程创建普通权限进程的代码则很好理解。 1、基础知识 (1) session (2) 权限 CreateProcessAsUser需要传入一个token&#x…

LeetCode 打卡day45--完全背包问题之最小填充次数

一个人的朝圣 — LeetCode打卡第45天 知识总结Leetcode 70. 爬楼梯题目说明代码说明 Leetcode 322. 零钱兑换题目说明代码说明 Leetcode 279. 完全平方数题目说明代码说明 知识总结 今天的问题都可以归结一句话, 在完全背包的问题设置下, 问将该背包填满最少需要放几件物品. L…

java基础(并发编程)-异步模式之生产者/消费者

一、定义要点 与前面的保护性暂停中的GuardedObject不同&#xff0c;不需要产生结果和消费结果的线程一一对应消费队列可以用来平衡生产和消费的线程资源生产者仅负责产生结果数据&#xff0c;不关心数据该如何处理&#xff0c;而消费者专心处理结果数据消息队列是有容量限制的…

代码随想录算法训练营第17期第1天 | 704. 二分查找、27. 移除元素

从头开始&#xff0c;重新再来&#xff0c;但是又不完全一样&#xff0c;之前是擅长的python&#xff0c;现在是C&#xff0c;能坚持下来么&#xff1f; 704. 二分查找 704. 二分查找https://leetcode.cn/problems/binary-search/ 上次写这道题已经是两个月之前&#xff0c;说…

Openresty原理概念篇(七)OpenResty 中用到的 NGINX 知识

一 OpenResty 中用到的 NGINX 知识 Luaj 是一个 Java 的 Lua 解释器,基于 Lua 5.2.x 版本 luaj ① 说明 1) 本文可有可无原因&#xff1a;如果你之前没有接触过nginx或者涉及一点nginx,那么建议阅读2) 由于自己已经对nginx整个脉络体系进行讲解,本文只是机械的摘录,构成…

Java使用RabbitMQ实战,Springboot使用rabbitMQ实战

文章目录 一、Java原生API1、简单实例2、延迟消息3、消费端限流4、消息属性设置5、消息可靠投递 二、Spring-API1、简单实例&#xff08;1&#xff09;引入rabbitMQ.xml&#xff08;2&#xff09;生产者&#xff08;3&#xff09;消费者&#xff08;4&#xff09;测试类 三、Sp…

使用VSCODE跑orbslam2踩的坑

我用的是ubuntu22.04&#xff0c;opencv是4.7&#xff0c;使用其他的库感觉就算版本不一样&#xff0c;也能跑。 一、运行build.sh能够产生可执行文件遇到的问题 1.由于opencv版本高带来的问题 这些问题怎么定位出现在哪些文件中&#xff0c;你通过命令行&#xff0c;运行下…