這裏的樣品片材:Excel 2007中的Visual Basic:最小值
可樂,COLB,COLC
A,0.2,10%
A,0.3,1%
A,0.5,6%
B,0.4,9%
B,0.3,8%
B,1.2,40%
我在找到最小值COLB對於SP在ColA中保留的值,然後檢查該行中的ColC是否大於15%。如果是這樣 - 返回值爲ColB。如果不是,找到下一個最小值並與先前找到的值相加,然後再次檢查和是否大於15%,依此類推。返回上一個求和值,從ColB。
實施例(爲COLA = 「甲」):
1. COLB找到最小值(細胞:B2,值0.2)
2.檢查值在COLC在此行(單元格:C2,值10%)大於15%(不符合!)之前的值val = 0 + 10%= 10%
3.在ColB(cell:B3,value 0.3)
4.檢查> 15%條件 - >(單元格:C3,值1%)與先前val = 10%+ 1%= 11%(仍未滿足)
5.取下一個最小值ColB(cell:B4,value 0.5)
6.檢查> 15%條件 - >(cell:C4 ,值6%)與先前VAL = 11%+ 6%)=(17%之和(條件滿足)
7.我們總結的最後一個單元是C4,所以我們從此行中返回值COLB - 0.5
(關於「B」的答案是0.4)
我想問任何提示來解決這個問題。希望這是明確的;)
這是我的函數的原型
Function foo(ColA As String) As Integer
分裂通過'ColA'的值,按ColB排序,創建'ColC'的累積和,找到這個總和的第一個值> 15%,並取該元素的ColB值。 – James