[算表] 小麻煩的運算 求救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