excel - 用于将数字除或拆分为最大可能相等部分的 excel 函数
问题描述
我需要除以5 (如除法) ,但是每个值应该平衡每个部分的最大可能方式
例子
6= 3,3 is ok. but 6= 5,1 is wrong
18= 5,5,4,4 is ok. but 18= 5,5,5,3 is wrong
21= 5,4,4,4,4 is ok. but 21= 5,5,5,5,1 is wrong
解决方案
其基础数学如下。Number have to split
将被分成两个数字的重复。较小的数字由下式给出
=QUOTIENT(NUMBER_HAVE_TO_SPLIT,SPLIT_BY_PARTS)
较大的数字由下式给出
=QUOTIENT(NUMBER_HAVE_TO_SPLIT,SPLIT_BY_PARTS)+1
仅供参考,QUOTIENT
工作表函数进行整数除法,例如QUOTIENT(13,4)=3
.
较大数字重复的次数由下式给出:
=MOD(NUMBER_HAVE_TO_SPLIT,SPLIT_BY_PARTS)
较小数字的重复次数由下式给出:
=SPLIT_BY_PARTS - MOD(NUMBER_HAVE_TO_SPLIT,SPLIT_BY_PARTS)
剩下的任务是以您建议的格式返回结果。要获得逗号分隔的格式3,4,4
:
- 使用将较小的数字和较大的数字都转换为文本
TEXT(number,0)
- 在每个前面加上逗号以给出字符串
,3
和,4
- 使用该
REPT
功能重复每个适当的次数以给出,3
和,4,4
- 连接这两个字符串并使用
SUBSTITUTE
删除第一个逗号
完成上述操作的一个有点混乱的公式是:
=SUBSTITUTE(REPT(","&TEXT(QUOTIENT(A2,B2),"0"),B2-MOD(A2,B2))&REPT(","&TEXT(QUOTIENT(A2,B2)+1,"0"),MOD(A2,B2)),",","",1)
其中NUMBER_HAVE_TO_SPLIT
和SPLIT_BY_PARTS
分别在A2
和B2
中。
生成3=1 and 4=2
格式的公式是
=TEXT(QUOTIENT(A2,B2),0)&"="&TEXT(B2-MOD(A2,B2),"0")&IF(MOD(A2,B2)>0," and "&TEXT(QUOTIENT(A2,B2)+1,0)&"="&TEXT(MOD(A2,B2),"0"),"")
推荐阅读
- javascript - 数字越大的二叉树在树中越高
- c# - 使用 async/await 和 ContinueWith 时捕获异常
- wordpress - 如何摆脱导致我的域错误的firebase证书?
- qt - 如何使用 QAction 正确添加 QMenu(和子菜单)
- r - 如何在 R 中以不同的方式对多维数据进行切片
- python - 根据另一列中的运算符填充 NaN 值
- python - 如何将一个numpy数组中的值替换为具有索引的另一个数组
- ruby-on-rails - mongoid 索引仍然导致 COLLSCAN
- java - Java 石头剪刀布 - 一切都是平局
- java - JOOQ 没有生成类