看板 Office 關於我們 聯絡資訊
軟體: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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.206.32 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1458653984.A.57E.html ※ 編輯: jimmy0413 (36.230.206.32), 03/22/2016 21:41:16
yhlhenry: 覺得這種動態的處理,可能還是要用上VBA比較省事 03/23 01:02
yhlhenry: 而且你的步驟都寫那麼具體了,連變數名稱A/B都想好了XD 03/23 01:03
yhlhenry: 只要把中文翻譯成VBA語法即可~ 03/23 01:03
soyoso: https://imgur.com/saV9nn0 函數想到的是index配合small 03/23 01:12
soyoso: +if來抓出符合最大數字的第二行數字 03/23 01:13
soyoso: 再以sumproduct配合offset來加總上下二筆數字 03/23 01:14
soyoso: 取得B後再和A*0.7做判斷,找出原po要的範圍 03/23 01:17
soyoso: 也可用篩選的方式,抓出符合最大數字的第二行數字 03/23 01:18
yhlhenry: 原po提到「就把剛剛的7028,7029,7030當作中心」,讓我 03/23 09:57
yhlhenry: 以為是要繼續比較7026/7027和7031/7032的對應總和? 03/23 09:57
soyoso: 如y大所述那就不合適上面函數的方式 03/23 11:04
soyoso: https://imgur.com/7hZvbNv 改以這樣的方式 03/23 11:52