2017-01-03 37 views
0

Image from the table尋找從Excel表格

什麼是採用visual basic編碼或Excel函數,並從該列返回價格以找到行駛的里程右列的最佳途徑的權利範圍是多少? HLOOKUP在這裏不能使用,因爲查找值不準確,表中的範圍也沒有特定的時間間隔(如果是的話,我可以使用例如FLOOR(travelled miles/100)*100並通過HLOOKUP找到價格)。顯然,用小桌子手動找到價格很容易,但用大桌面電腦會更快。

+0

如果你去6英里,它仍然是10美元/英里的頭5英里,每一線價格,對不對? –

+2

如果是這樣,那麼計算結果並不像你說的那麼簡單 - 如果不是這樣,那是一個奇怪的政策,因爲當里程錶從499英里延伸到500英里時,司機報銷時損失了近1000美元(從499 * 5到500 * 3),對嗎? –

+0

如果是6英里,那麼它是6英里* 9美元/英里= 54美元。每英里的價格是相對隨機的。主要的一點是,我想知道的是如何編碼它看看正確的價格/英里。 – Coldcode

回答

0

請注意,如果x介於ab之間,那麼MEDIAN(x,a,b)=x。與一些國際單項體育聯合會的嵌套組合這樣的:

=IF(MEDIAN(B5,B1,C1-1)=B5,B2,IF(MEDIAN(B5,C1,D1-1)=B5,C2,IF(MEDIAN(B5,D1,E1-1)=B5,D2))) 

我我的手機上,使剛剛做在前三種情況下,但我希望你可以看到它如何繼續。

(要注意,你需要刪除破折號這個工作)

編輯:

我也想回答上面的評論你的問題。你可以使用下面的代碼來保留短劃線,但是要得到一個數字來處理。

假設小區A1的值爲10-。我們可以使用FIND功能摸出其中-發生,然後使用LEFT功能僅從破折號前返回字符:

=LEFT(A1,FIND("-",A1)-1) 

這將返回值10,但它將返回它作爲一個字符串,而不是數字 - 基本上Excel會認爲它是文本。爲了強制Excel將它視爲一個數字,我們可以簡單地將該值乘以一。我們因此上述公式變爲:

=(LEFT(A1,FIND("-",A1)-1))*1 

你也可以看到人們使用雙減號,就像這樣:

=--LEFT(A1,FIND("-",A1)-1) 

我不建議這樣做,因爲這是一個有點複雜,但與合併公式如下:

=IF(MEDIAN(B5,--LEFT(B1,FIND("-",B1)-1),--LEFT(C1,FIND("-",C1)-1)-1)=B5,B2,IF(MEDIAN(B5,--LEFT(C1,FIND("-",C1)-1,--LEFT(D1,FIND("-",D1)-1-1)=B5,C2,IF(MEDIAN(B5,--LEFT(D1,FIND("-",D1)-1,--LEFT(E1,FIND("-",E1)-1-1)=B5,D2)))