excel 数组运算 各行最大值求和

发布网友 发布时间:2022-04-21 03:21

我来回答

4个回答

热心网友 时间:2023-09-08 00:16

本问题可以用规划求解

1. 先是建立数据模型,如图,在B18:E18中随意输入数字(数字为分别引用一、二、三、四区域的列序号,如B18输入1、2、3中的任意一个,D18、E18输入1~10中的任意一个),选择B19:B28,输入公式:

=OFFSET(A3:A12,,B18)

同时按Ctrl+Shift+Enter三键输入数组公式,把一区域中的某一列(由B18中的数字确定)引用到B19:B28中来。

再选择C19:C28,输入公式:

=OFFSET(D3:D12,,C18)

同样数组公式,引用二区中的某列数据

D19:D28=OFFSET(F3:F12,,D18)

E19:E28=OFFSET(P3:P12,,E18)

同样数组公式,分别引入三区、四区的数据列。

F19=MAX(B19:E19)

取得第1行(A行)的最大值,下拉到F28,得到各行的最大值

F29=SUM(F19:F28)

得到各行最大值的和。

这样就建立引用四个区域数据的数据模型,如图:

引用4个区域各1列数据的数据模型

2. 规划求解,数据菜单——规划求解(如果没有,就要先在选项中加载)

目标单元格:F29,目标值:最大

可变单元格:B18:E18(即求解选哪些列数据)

添加约束:先是B18:E18——整数(列序号只能是整数)

最分别对B18到E18添加约束:大于或等于1(最小取第1列);小于或等于各自的列数。

然后选择不同求解方法,共有3种可选择:非线性、单纯线性、演化。看哪种方法能得到解或得到的解更理想。经求解,本问题用演化求解得到的结果最好。

规划求解的有关设置

3. 点求解,Excel的规划求解会开始运行,如果问题有解,根据数据复杂程度,求解模型的收敛性、以及电脑的硬件水平,大约数十秒到到数十分钟不等,会给出一个解,不满意可在些基础上再次运行求解,如果有更合理的解,规划求解会给出新的解,否则返回原解。为了该上死循环,一般在规划求解对话框中的选项中,设置一个最大求解时间或最多循环次数,当达到时间或次数时,没有得到解,也能退出来。当规范求解出现很长时间不能得到解,而理论上应该有时,一般应修改数据模型,使模型更合理,更加快的收敛速度(这已不是Excel的范畴,而是数学问题了)。如图是本问题经2次求解得到同一结果的解。

求解结果

求解过程大约1分钟。

因为本问题的几列数字大小比较接近,手动把二区域改为1,结果完全一致。

热心网友 时间:2023-09-08 00:17

用代码可以进行3*2*10*10的全罗列,进一步求取最大的和,最后得到和的最大值及组合方式。

热心网友 时间:2023-09-08 00:17

可以用如下公式计算:
=SUM(MAX(H12:I12),MAX(J12:K12),MAX(L12:O12),MAX(P12:Q12))
把这里的单元格区域换成你的区域即可。

热心网友 时间:2023-09-08 00:18

1、因为要随机抽取,公式实现效果不会好,因为随机公式出来的数会不稳定,数据会一直变
2、可以用VBA实现,代码待补充

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com