返回列表 上一主題 發帖

[發問] 如何找出前三個交期

回復 1# adam2010

=IFERROR(SMALL(IF(FREQUENCY(IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10),IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10,-999)),總表!$C$2:$C$10),COLUMN(A1)),"")
陣列公式輸入(CTRL+SHIFT+ENTER參鍵齊按輸入公式)
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 7# adam2010

請教一下 ML089 大,=IFERROR(SMALL(IF(       FREQUENCY(     IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10),        IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10,-999)      )   ,總表!$C$2:$C$10),COLUMN(A1)),"")
其實我看不太懂為何這樣就可以跳過重複值~
其中 FREQUENCY(data_array, bins_array)
的 data_array是用IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10)
                                        問: 1.為何這個IF函數沒有[value_if_false]的值,是特殊用法嗎?
                                               2.意思是取該項目的所有交期當 data_array嗎?
而分組值bins_array用 IF($A2=總表!$A$2:$A$10,總表!$C$2:$C$10,-999)
                                       問:是否代表當總表有該項目就取得其交期,若無該項目就=-999(用其他數字好像也可以)
在FREQUENCY外層的IF就更看不懂了...................還是說陣列公式不是這樣拆解的
在下實在是資質駑鈍無法參透,是不是可以ML089大稍微解說一下,謝謝!



回答
1. IF除用判斷值 TURE/FALSE外,0值為FALSE,其他值為TURE,公式中FREQUENCY回傳值中重複項第二位及以上者為0
2. 若無該項目就=-999(用其他數字好像也可以,但值要小於總表!$C$2:$C$10)
3. FREQUENCY({1;2;3;2;3;3},{1;2;3;2;3;3})回傳值為 {1;2;3;0;0;0;0},所以0值為重覆項不是我們要的項目。
IF(FREQUENCY({1;2;3;2;3;3},{1;2;3;2;3;3}), {1;2;3;2;3;3,}) = IF( {1;2;3;0;0;0;0},{1,2,3,2,3,3}) = {1;2;3;FALSE;FALSE;FALSE;FALSE}
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 人要知福、惜福、再造福。
返回列表 上一主題