作者windknife18 (windknife18)
看板Office
標題Re: [算表] 玩:小數進位與排名
時間Sat Sep 12 01:01:19 2009
看來很好玩,發現真的要在一個公式還真的很麻煩說,頭都昏了說,
已經不知道自己在看什麼了 @_@
{.4,.4,.2,.0}
A1
=IF(INDEX(MMULT(--({0.4,0.4,0.2,0}>TRANSPOSE({0.4,0.4,0.2,0})),{1;1;1;1})*1000
+ROW(1:4),COLUMNS($A$1:A1))<=SMALL(MMULT(--({0.4,0.4,0.2,0}>
TRANSPOSE({0.4,0.4,0.2,0})),{1;1;1;1})*1000+ROW(1:4),SUM({0.4,0.4,0.2,0}))
,1,0)
{0.8,0.8,0.3,0.1}
A1
=IF(INDEX(MMULT(--({0.8,0.8,0.3,0.1}>TRANSPOSE({0.8,0.8,0.3,0.1})),{1;1;1;1})
*1000+ROW(1:4),COLUMNS($A$1:A1))<=SMALL(MMULT(--({0.8,0.8,0.3,0.1}>
TRANSPOSE({0.8,0.8,0.3,0.1})),{1;1;1;1})*1000+ROW(1:4),
SUM({0.8,0.8,0.3,0.1})),1,0)
以上都是陣列公式,輸入完記得按 Ctrl+Shift+Enter, 然後往右拉到 D1 即可
※ 引述《JieJuen (David)》之銘言:
: 現在板上出現了好玩的題目,化簡如下
: 4個小數 .4 .4 .2 .0
: 要化成(進位成) 1 0 0 0
: 小數的和就是最後要有幾個1
: .4+.4+.2+.0=1 即有1個數要進位
: 小數和一定是整數
: 1要由最大的數開始放
: 有重覆的就自己選一個來放
: 因為提問者想要一格算出,
: 意即要使用陣列 {.4,.4,.2,.0} 來輸入
: 就是如果要用到.2 不能直接取第三格 要從{}中取出 如INDEX({},3)
: 因為{}中的數也是其他步計算所得
: 簡單說,公式應該用{.4,.4,.2,.0}整體
: 然後參照其中一格.4時 可得1
: 此公式往其他格拖曳 可在另一格.4 得0 剩下也得0
: 呵 好像有一定的難度
: 再給一例測試
: .8 .8 .3 .1
: 1 1 0 0
: 看似4捨5入,但您知道的,這是第二個測試例。
: 我也還沒有答案,
: 但看起來應該有吧,
: 至少寫在多格會有答案?
: 雖然原問題暫時解決,
: 這是為未來著想,
: 有興趣的解完之後再套用到
: │ 文章代碼(AID): #1Ag7k4e5 (Office) [ptt.cc] [算表] 小數點後的比較進位或捨 │
: │ 文章網址: http://www.ptt.cc/bbs/Office/M.1252555652.A.A05.html │
: ●10760 4 9/10 m9300913 □ [算表] 小數點後的比較進位或捨去
: 做為該文的改進版 呵呵。
: PS.我想至少可以小數TRUNC取兩位 再加.0001來排名 (如果有比較容易的話...)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.3.92
推 JieJuen:嘿 真的全到一格了! 超過原先標準XD 本來要算.4時是可引入 09/12 08:14
→ JieJuen:.4這一單格的 呵 依下篇文 *1000改用整數就更保險了 09/12 08:16