難! 教Excel排次序!

2007-11-24 3:55 am
我有十行數, 每行數約有80個數. 當中有正有負(數), 每一行正/負數各自既總數量都不同.

我想教識Excel, 幫我搵出每一行:

1) 抽出所有正數, 然後由細至大排列後, 搵出排頭66%既最後一個數係邊個
2) 抽出所有負數, 做同一步驟

我希望每一行數能夠用一條formula做晒(1), 然後用另一條formula可以做晒(2)

唔知有無高手可以幫下我?? 謝謝!
更新1:

我只係需要Excel幫我搵個數出黎, 唔駛佢幫我排序!

更新2:

我已找到算係岩用的函數, 就是percentile ( 下面那位仁兄, 很多謝你的幫忙! 但用large的話, 只會找到第幾大的數字是甚麼. 但我想要的是排在第66%位置的數, 如用上述例子, 即是第52或53個位的數, roundup或rounddown都不是問題. 但如果不是全部數字都只出現一次的話, large就不準了. 但仍很感謝你的幫忙!) 現在, 希望各位高手可以教下我, 點樣用percentile寫array formula. 咁就可以完全解決我呢個難題啦! thanks a lot!

更新3:

第三位朋友, 我很感謝你的幫忙. 但我已提到, 我希望能用percentile這個函數來寫array formula便可以解決到問題. 用large或者small並不合適我的情況. 所以, 我希望有朋友能教我如何寫這條formula. 我曾試過不同的寫法, 例如: { = percentile ( if ( ( a1 : a80 > 0 ) , ( a1 : a80 , 66%) , " " ) ) } 但Excel不接受, 故希望場內高手能指教一下, 不勝感激!

回答 (2)

2007-11-26 9:04 am
✔ 最佳答案
題1, 在CD1 輸入 ARRAY FORMULA
{=SMALL(IF(A1:CB1>0,A1:CB1),ROUNDDOWN((SUM(--(A1:CB1>0))*2/3),))}
題2, 在 CE1輸入 ARRAY FORMAULA
{=SMALL(IF(A1:CB1<0,A1:CB1),ROUNDDOWN((SUM(--(A1:CB1<0))*2/3),))}
將公式下拉
注意: 如A1:CB1 內有 空格 或 零, 不會被計算
如再另有條件, 一定要具體說清楚

2007-11-26 12:49:15 補充:
percentile + array 的公式結構是:{=PERCENTILE(IF(A1:A80&gt;0,A1:A80),66%)}除非答案是巧合性, 否則答案不一定是樓主要的最終有效公式, 除使用large/small外, lookup亦可(但一定要A1:A80, 小至大排序):{=LOOKUP(PERCENTILE(IF(A1:A80&gt;0,A1:A80),66%),A1:A80)}
2007-11-24 6:27 am
選擇所有要分正負的數據→
【格式(O) 】→【設定格式化條件(D) 】→
第一個格選【儲存格的值】→ 第二個格選【大於】→
第三個格打【 0 】→ 【 格式(F) 】→選取顏色&字型→
【新增A &gt;&gt;】→第一個格選【儲存格的值】→
第二個格選【小於】→ 第三個格打【 0 】→ 且【 0 】
→【 格式(F) 】→選取不同的顏色&字型→【 確定】


收錄日期: 2021-04-16 22:38:36
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20071123000051KK03179

檢視 Wayback Machine 備份