ad

excel公式技能: 获得指定区域中2个及以上连续数值并按顺序排列-英雄云拓展知识分享

匿名投稿 13856 2025-05-31

给订单元格区域A1:D5(其中每一个单元格中都是整数,并且在该单元格区域内是唯一的),使用单个公式生成一个数组,该数组由该区域中所有连续的数值组成,连续的数值最少包括两个,且返回的数组中的元素按从小到大的顺序排列。

图1

也就是说,可以返回结果:

excel公式技能: 获得指定区域中2个及以上连续数值并按顺序排列-英雄云拓展知识分享

{1;2;3;12;13;14;15;16;17;36;37}

也能够返回结果:

{1,2,3,12,13,14,15,16,17,36,37}

注意,所给出的公式应包括最少的字符;在公式中必须同时包括行列援用,不允许全是列援用(如A:D)或行援用(如1:5);公式中不允许使用名称。

先不看答案,自已动手试一试。

公式

公式1:

=MODE.MULT(SMALL(A1:D5,ROW(A1:A20)),IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5))

使用了91个字符。

公式2:

=MODE.MULT(IFERROR(SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5),ROW(A1:A20))*{1,1},””))

使用了103个字符。

尝试经过同时评估两个COUNTIF构造来缩短此公式构造-并消除对IFERROR子句的需要,但终究比上述公式稍长一些,有105字符,即公式3:

=MODE.MULT(IF(MMULT(COUNTIF(A1:D5,SMALL(A1:D5,ROW(A1:A20))-{1,⑴}),{1;1}),{1,1}*SMALL(A1:D5,ROW(A1:A20))))

或公式4:

=MODE.MULT(IF(MMULT(COUNTIF(A1:D5,SMALL(A1:D5,ROW(A1:A20))-{1,⑴}),{1;1}),SMALL(A1:D5,ROW(A1:A20))),A1:D5)

公式解析

由于我们想要从所给区域中返回一个数组,该数组由区域内最少两个连续的数值构成,因此,这种情况下,履行此操作的一种方法是针对区域内的每一个值检查是不是在该区域内还会发现比该值大1或小1的值。

这样,我们需要查看下面两类构造的结果:

COUNTIF(A1:D5,A1:D5+1)

COUNTIF(A1:D5,A1:D5⑴)

由于我们要求对每一个值,其两个返回值中只有一个为非零值便可,因此可以经过简单地将上述构造加在一起,这等价于OR操作。因而,公式中的:

COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴)

转换为:

{0,0,1,0;0,0,0,0;1,1,0,1;1,0,1,1;1,0,0,0}+{0,1,1,0;0,0,0,1;0,1,1,1;1,0,0,0;1,0,0,0}

结果为:

{0,1,2,0;0,0,0,1;1,2,1,2;2,0,1,1;2,0,0,0}

从中可以看出,元素0表示:在区域中未找到比要查找的值大1或小1的值。一样,元素1表示:在区域中找到了比要查找的值大1或小1的值。值2表示在区域中找到了比要查找的值大1的值和小1的值。因此:

IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5)

转换为:

IF({0,1,2,0;0,0,0,1;1,2,1,2;2,0,1,1;2,0,0,0},A1:D5)

得到:

{FALSE,17,14,FALSE;FALSE,FALSE,FALSE,37;12,15,3,2;13,FALSE,1,36;16,FALSE,FALSE,FALSE}

现在,我们已生成了所需的值。但是,依然存在两项工作要解决:按升序对它们进行排序和删除任何非数字元素。

使用SMALL函数来完成排序操作:

SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5),ROW(A1:A20))

转换为:

SMALL({FALSE,17,14,FALSE;FALSE,FALSE,FALSE,37;12,15,3,2;13,FALSE,1,36;16,FALSE,FALSE,FALSE},ROW(A1:A20))

转换为:

SMALL({FALSE,17,14,FALSE;FALSE,FALSE,FALSE,37;12,15,3,2;13,FALSE,1,36;16,FALSE,FALSE,FALSE},{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20})

结果为:

{1;2;3;12;13;14;15;16;17;36;37;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!}

通常,我们可能试图经过构造一个适合的数组传递给SMALL函数作为其参数k的值来缩小数组,但是,这里使用了MODE.MULT函数,更简洁。注意,这里使用的缩小数组的技术,当我们希望返回的元素在被处理的数组中出现的频率相等时才适合。另外,该频率必须最少为两倍,由于如果没有一个以上的值出现,那末MODE.MULT不会返回任何值。

因此,这种情况下,先与数组{1,1}相乘的缘由是,当我们将SMALL构造(一个20行1列的数组)与数组{1,1}(一个1行2列的数组)相乘时,生成20行2列的数组,其每行中列的元素都是相同的。这样:

SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5),ROW(A1:A20))*{1,1}

转换为:

{1;2;3;12;13;14;15;16;17;36;37;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!}*{1,1}

结果为:

{1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!}

可以看出,我们已成功地使每一个元素的数量简单地翻了一倍,现在可以安全地将其传递给MODE.MULT函数。但是,我们先要消除这些毛病值。像绝大多数函数一样,MODE.MULT函数不会处理包括此类毛病值的数组。

这样,公式中的:

IFERROR(SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5),ROW(A1:A20))*{1,1},””)

转换为:

IFERROR({1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!;#NUM!,#NUM!},””)

得到:

{1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””}

最后,将其传递给MODE.MULT函数:

MODE.MULT(IFERROR(SMALL(IF(COUNTIF(A1:D5,A1:D5+1)+COUNTIF(A1:D5,A1:D5⑴),A1:D5),ROW(A1:A20))*{1,1},””))

转换为:

MODE.MULT({1,1;2,2;3,3;12,12;13,13;14,14;15,15;16,16;17,17;36,36;37,37;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””;””,””})

得到:

{1;2;3;12;13;14;15;16;17;36;37}

小结

MODE.MULT函数的妙用!



选择英雄云云表单=选择更智能的办公工具

>>>>🚀🌟 点击注册 免费试用 更高级的-英雄云企业级云表单 🌟🚀 😃👉🌐>>>>

在现代企业管理中,数据的高效管理和处理至关重要。随着信息技术的不断发展,英雄云云表单已经成为了提高数据录入、管理和分析效率的不可或缺的工具。让我们来深入探讨英雄云-云表单的几大优势。

基础字段:多样性满足业务需求

英雄云云表单中包括了各种基础字段,如单行文本多行文本数字输入框单选框复选框下拉框下拉复选框日期时间分割线等。这些字段的多样性使用户可以根据具体的业务需求,轻松进行文本、数据和时间信息的录入或修改。例如,您可以使用单行文本字段录入员工姓名、产品型号等,或者使用下拉框进行多选,根据不同情况选择更加方便的字段类型。

高级字段:提升工作效率

英雄云云表单还提供了高级字段,如地址图片附件手写签名手机子表关联数据关联查询以及流水号。这些高级字段在基础字段的基础上升级,可帮助用户完成一些琐碎的工作。例如,使用地址字段可以避免逐字打字,而流水号字段可以自动生成规律性的编号,非常适用于合同编号生成等场景。

部门成员字段:精确管理与通讯录的关联

英雄云的部门成员字段允许企业对各个部门的成员进行精确管理。用户可以通过部门成员字段获取通讯录中的部门成员信息,应用于记录报销人、报销部门等场景。这些成员字段还细分为成员单选成员多选,可根据具体需求在通讯录中选择一个或多个成员。

聚合表:数据处理更智能

英雄云聚合表功能用于对已存在的表单数据进行聚合计算,从而得到一张聚合表,后续其他表单可调用聚合表进行数据联动、关联查询和关联数据等操作完成数据处理。这一功能可应用于多种场景,如进销存管理、财务管理和门店零售管理等,帮助企业完成数据处理,提高工作效率。

表单权限设置:灵活管理数据访问

英雄云的表单权限设置允许用户根据企业的具体需求管理表单的访问和操作权限。用户可以根据系统权限或自定义权限对不同成员或团队进行权限设置,以确保数据的安全和合规性。这一功能使企业能够根据变化的业务需求和团队结构,实时调整权限设置。

自定义打印模板:文档输出更便捷

英雄云云表单支持自定义打印模板,可将表单数据转换为可打印的Word文档。用户可以根据自己的需求进行排版和编辑,将产品规格说明书等文档轻松生成。这一功能提供了一种标准化的文档输出方式,简化了信息整理的过程。

综合来看,选择英雄云云表单意味着选择更智能、更灵活、更高效的数据管理工具。无论是提高工作效率,精确管理数据,还是实现数据处理,英雄云云表单都能满足您的多样化需求,助力您的业务发展。

如果您正在寻找一款强大的云表单工具,不妨考虑英雄云,它将为您带来更多的便捷和智能,助您事半功倍。


免责声明:

本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿等来源。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。

上一篇:造成快捷键没法正常使用-英雄云拓展知识分享
下一篇:数据分析是做甚么的-英雄云拓展知识分享
相关文章
×