excel-formula - 在 n , m 之间随机选择“x”列中的数字
问题描述
我在一列中有数字(即 A 列中的 1 到 10)和另一列中的一些数字(即 E 列中的六个数字)。我想将 E 列的数字随机放置在 B 列中,以便 Ai 和 Bi 之间的绝对差在 D1 和 D2 中的 n 和 m 之间。我使用 AGGREGATE 函数
AGGREGATE(15,6,$E$2:$E$7/(And(ABS($E$2:$E$7-A2)>=$D$1;ABS($E$2:$E$7-A2)<=$D$2)),RANDBETWEEN(1,SUMPRODUCT(--(And(ABS($E$2:$E$7-A2)>=$D$1;ABS($E$2:$E$7-A2)<=$D$2))))
但是不要跑
解决方案
该AND
函数会将您的 Array 展平为单个项目: =AND({1,2,4,8}>2,{1,2,3,4}<7)
将变为=AND({False,False,True,True},{True,True,True,False})
,但下一步是=FALSE
你想用--
and*
代替,像这样:=--(({1,2,4,8}>2)*--({1,2,3,4}<7)
变成=({False,False,True,True})*--({True,True,True,False})
then ={0,0,1,1}*{1,1,1,0}
, finally={0,0,1,0}
另外:而不是SUMPRODUCT
在中间,只使用一对会更简单/更快COUNTIFS
吗?
=AGGREGATE(15,6,$E$2:$E$7/--((ABS($E$2:$E$7-$A2)>=$D$1)*(ABS($E$2:$E$7-$A2)<=$D$2)),RANDBETWEEN(1,COUNTIFS($E$2:$E$7,">=" & ($A2+$D$1),$E$2:$E$7,"<="&($A2+$D$2))+COUNTIFS($E$2:$E$7,">=" & ($A2-$D$2),$E$2:$E$7,"<="&($A2-$D$1))))
推荐阅读
- python - 如何使用python捕获自动下载文件
- ios - 删除 tableView 中的项目会从存储的值中删除错误的对应文件(swift NSCoding)
- java - 有什么方法可以为多个 Runner 类运行的多个功能文件创建一个 Cucumber 报告?
- jmeter - JMeter正则表达式提取器一对一映射
- javascript - 使用 require.context 后如何动态加载 Vue 组件?
- android - Android 矢量绘图
不支持, 不支持 - azure - 如何使用PowerShell检查Azure虚拟机上是否启用了备份
- c# - 即使在为操作设置超时属性后超时异常
- angular5 - Angular 5 Observable 多次调用
- javascript - 将 id 添加到对象数组