返回列表 上一主題 發帖

[發問] 如何將對應的值自動填入紅字框框內 (附檔案)

本帖最後由 准提部林 於 2015-10-22 14:34 編輯

回復 8# mmokdtmj


EXCEL的數字長度最多15位,超過的都顯示0,可參考以下算法:
十萬為6位數,數字*10^7,則可將小數再進位7位,合計13位,
例如:=INT(124715.272815689*10^7) = 1247152728156

尾端〔2位〕則保留給陣列參數{32,16,8,6,4,2,1},
例如:=INT(124715.272815689*10^7)*100+{32,16,8,6,4,2,1}
則產生如下結果:{124715272815632,124715272815616,124715272815608,
124715272815606,124715272815604,124715272815602,124715272815601}

最後以 RIGHT(??,2) 取出後2位參數值~~

可依此邏輯去推要算小數的位數~~

ML089 板主的公式超絕,但計算邏輯就複雜得多,看得懂也可採用~~ 

TOP

本帖最後由 hcm19522 於 2015-10-22 14:47 編輯

D24{=MID(INDEX($66,INT(RIGHT(MIN(IF(MOD(COLUMN($C8AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+COLUMN(C$8:AG$14))),2)/5)*5+2),4,9)
E2:E4{=INDEX(B:B,RIGHT(MIN(IF(MOD(COLUMN($C8AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+ROW(C$8:AG$14))),2))

TOP

D24{=MID(INDEX($66,INT(RIGHT(MIN(IF(MOD(COLUMN($C8AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+COLUMN(C$8:AG$14))),2)/5)*5+2),4,9)
E2:E4{=INDEX(B:B,RIGHT(MIN(IF(MOD(COLUMN($C8AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+ROW(C$8:AG$14))),2))

TOP

本帖最後由 准提部林 於 2015-10-22 17:15 編輯

D2:D4{=MID(INDEX($6:$6,INT(RIGHT(MIN(IF(MOD(COLUMN($C8:$AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+COLUMN(C$8:AG$14))),2)/5)*5+2),4,9)
E2:E4{=INDEX(B:B,RIGHT(MIN(IF(MOD(COLUMN($C8:$AG14),5)=3,ROUND(ABS(C$8:AG$14-C2),2)*10000+ROW(C$8:AG$14))),2))

TOP

http://www.FunP.Net/225006

TOP

D2 =INDEX($B$8:$B$14,MID(MAX((ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5)))=MIN(ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5)))))*({7,6,5,4,3,2,1}*10+{1;2;3;4;5;6;7})),(D$1="QD")+1,1))
一般公式 右拉1格,下拉2格

接近值的求法觀念
兩數的絕對差值越小越接近,當差值為0時表示兩數相同

兩數差值陣列
= ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5)))

最小差值
= MIN(兩數差值陣列)
= MIN(ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5))))

最小差值陣列位置
= (最小差值 = 兩數差值陣列)
= (MIN(ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5)))) = ABS($C2-N(OFFSET($C$8,{0;1;2;3;4;5;6},{0,1,2,3,4,5,6}*5))))

兩數差值陣列、最小差值陣列位置 為 7*7 的陣列
垂直為 QD項有7組 * 水平為TC項有7組
QDTC位置陣列
=QD位置*10+TC位置
=({7,6,5,4,3,2,1}*10+{1;2;3;4;5;6;7})

QDTC位置組合數值
=MAX(最小差值陣列位置*QDTC位置陣列)

TC或QD位置的數值
=MID(QDTC位置組合數值,(D$1="QD")+1,1)


TC或QD數值陣列
=$B$8:$B$14

求出TC或QD數值
=INDEX(TC或QD數值陣列, TC或QD位置的數值)
=INDEX($B$8:$B$14, MID(QDTC位置組合數值,(D$1="QD")+1,1))
=INDEX($B$8:$B$14, MID(MAX(最小差值陣列位置*QDTC位置陣列),(D$1="QD")+1,1))
=INDEX($B$8:$B$14, MID(MAX((最小差值 = 兩數差值陣列)*QDTC位置陣列),(D$1="QD")+1,1))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

謝謝大家, ML089 板主 的詳細說明, 我會在研讀了解一下, 我算是初學者, 觀念需要在建立一下, ^^

TOP

回復 17# mmokdtmj

公式複雜就是你的資料排列不符合資料庫型式

標準資料庫一般都2維資料表,如 IOps  ART  QD  TC

以 IOps 欄由小至大排列,這要查詢只要用VLOOKUP函數就能簡單查詢

需要看的表格再由資料庫產生。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 18# ML089

是的, 就是我同事這樣排, 導致我很煩惱-_-"

TOP

        靜思自在 : 是非當教育,讚美作警惕。
返回列表 上一主題