[算表] 小麻烦的运算 求救QQ

楼主: jimmy0413 (小M&小I)   2016-03-22 21:39:42
软件:EXCEL
版本:2010
就是呀我要算一个有点小麻烦的东西
首先 假设第二行有7000-7100 100个数字,然后在这100个数字的上一行
(也就是第一行)都有对应一个数字,例如从1-10不等,每一个对应的都不一样
然后我要计算一个范围,这个范围的算法如下
首先,加总第一行的所有数字 = A
,然后找到第一行中最大的数字(在我上面举的例子中就是10),假设那个
数字对应的第二行数字是7030,接下来就要以这个7030为中心,然后比较这个7030
左边两个数字(7029,7028)对应的第一行数字总和(假设7028的第一行是2,7029的第一行
是3,因此总和是5)和右边两个数字(7031,7032)对应的第一行的总和(假设7031对应1,
7032对应2,总和是3),这时候把总和比较大的数字加上7030对应的第一行数字(因此是10
+5),我们把这个总合称作B。
接下来,检查B是否有大于或等于A*0.7,若没有的话,就把刚刚的7028,7029,7030当作中
心,再进行上面那个步骤,直到B大于或等于A*0.7。 然后,最后的那个中心,就是我要找
的范围。
由于可能要找到大概一万多行这种范围,但是我找了一下EXCEL好像没有循环函数,也不
太会用VBA,所以想问一下,有相关的函数可以用吗? 或者是有人知道该怎么做比较好吗
><
1
作者: yhlhenry   2016-03-23 01:02:00
觉得这种动态的处理,可能还是要用上VBA比较省事而且你的步骤都写那么具体了,连变量名称A/B都想好了XD只要把中文翻译成VBA语法即可~
作者: soyoso (我是耀宗)   2016-03-23 01:12:00
https://imgur.com/saV9nn0 函数想到的是index配合small+if来抓出符合最大数字的第二行数字再以sumproduct配合offset来加总上下二笔数字取得B后再和A*0.7做判断,找出原po要的范围也可用筛选的方式,抓出符合最大数字的第二行数字
作者: yhlhenry   2016-03-23 09:57:00
原po提到“就把刚刚的7028,7029,7030当作中心”,让我以为是要继续比较7026/7027和7031/7032的对应总和?
作者: soyoso (我是耀宗)   2016-03-23 11:04:00
如y大所述那就不合适上面函数的方式https://imgur.com/7hZvbNv 改以这样的方式

Links booklink

Contact Us: admin [ a t ] ucptt.com