找回密码
 立即注册

QQ登录

只需一步,快速开始

Quber
金牌服务用户   /  发表于:2024-6-24 17:15  /   查看:934  /  回复:8
1、版本号
版本为17.0.10,Vue3。



2、问题描述
假设有一个自定义公式TESTA,单元格D9=TESTA(SMALL(D7:I7,{1,2,3}))
此时问题来了,在自定义公式TESTA中只能得到系统公式 SMALL(D7:I7,{1,2,3}) 返回的 1,而并没有将2和3返回回来。


说明:SMALL(D7:I7,{1,2,3})代表的是在D7:I7集合中返回第一个最小值、第二个最小值和第三个最小值,即:如下图所示在Excel中应该返回的是1、2和3
image.png551466674.png

8 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-24 17:46:40
沙发
您好,需要您提供一下完整的自定义公式TESTA的代码,这边复现后调研一下,另外想问一下您这边想要实现什么样的需求呢?
回复 使用道具 举报
Quber
金牌服务用户   /  发表于:2024-6-25 08:51:04
板凳
Joestar.Xu 发表于 2024-6-24 17:46
您好,需要您提供一下完整的自定义公式TESTA的代码,这边复现后调研一下,另外想问一下您这边想要实现什么 ...

就是最基本的自定义公式,只是这个公式的参数使用的是系统公式SMALL
现在的问题是系统公式SMALL只返回了如下图所示的1,应该返回1,2和3才对
image.png529169921.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-25 10:49:08
地板
您好,您检查一下是否开启了动态数组选项:

image.png710716247.png
回复 使用道具 举报
Quber
金牌服务用户   /  发表于:2024-6-25 15:20:53
5#
Joestar.Xu 发表于 2024-6-25 10:49
您好,您检查一下是否开启了动态数组选项:

设置这个属性后,又有另一个问题,就是:SMALL(xxx,{1,2,3})如果有多个值的话,自定义函数就会执行3次,也就是第1次会将SMALL(xxx,{1,2,3})的1结果返回回来,第二次返回2,第3次返回3,我们想要的结果是,自定义函数只执行一次,并一次性将SMALL(xxx,{1,2,3})返回的3个值返回回来。
回复 使用道具 举报
Quber
金牌服务用户   /  发表于:2024-6-25 15:22:44
6#
Quber 发表于 2024-6-25 15:20
设置这个属性后,又有另一个问题,就是:SMALL(xxx,{1,2,3})如果有多个值的话,自定义函数就会执行3次, ...

如下图所示:
image.png959908142.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-25 18:44:16
7#
您好,了解您的需求了,您参考下图中的内容看能否实现您的需求:

image.png797425842.png

image.png78098753.png
回复 使用道具 举报
Quber
金牌服务用户   /  发表于:2024-6-26 10:02:01
8#
Joestar.Xu 发表于 2024-6-25 18:44
您好,了解您的需求了,您参考下图中的内容看能否实现您的需求:

根据在自定义公式中设置如下代码,的确可以得到返回多个值的结果,谢谢,此问题已解决!
  1. cusFun.prototype.acceptsArray = function () {
  2.     return true;
  3.     };
复制代码


回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-6-26 11:50:28
9#
不客气,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部