Board logo

標題: [發問] 空白<>0值的函數公式 [打印本頁]

作者: ziv976688    時間: 2021-10-8 09:58     標題: 空白<>0值的函數公式

[attach]34180[/attach]
目前:
C19

=IF(C18="","",INDEX($1:$1,LARGE(IF($C14:$AY14=C18,COLUMN($C:$AY)),COUNTIF($C18:C18,C18))))
即當第14列的某欄值=C18=0時,則C19顯示第14列的該欄值之第1列的最大同欄值。

問題:
因為目前C19公式會將$C14:$AY14=""的儲存格~都判斷為0值~所以C19=49
但答案是錯誤的

需求:
C19公式的判斷條件修正為~
$C14:$AY14的某儲存格=""時,則判斷為"空白格",不視為0值~
$C14:$AY14的某儲存格=0時,才判斷為0值。
C19=05

以上 C19的函數公式~懇請各位大大賜正。
謝謝!

作者: hcm19522    時間: 2021-10-8 10:42

本帖最後由 hcm19522 於 2021-10-8 10:51 編輯

{=IF(C18="","",INDEX(1:1,MAX(IF(($C14:$AY14=C18)*($C14:$AY14<>""),COLUMN($C:$AY)))))

=IF(C18="","",LOOKUP(1,($C14:$AY14=C18)/($C14:$AY14<>""),$C1:$AY1))
作者: samwang    時間: 2021-10-8 10:46

回復 1# ziv976688


    {=IF(C18="","",INDEX($1:$1,LARGE(IF($C14:$AY14<>"",  IF($C14:$AY14=C18,COLUMN($C:$AY)),),1)))}
作者: ziv976688    時間: 2021-10-8 11:48

本帖最後由 ziv976688 於 2021-10-8 11:50 編輯

回復 2# hcm19522
回復 3# samwang
二位大大 :
測試成功
承教了~感恩
作者: ML089    時間: 2021-10-8 12:43

C19 =INDEX(1:1,MATCH(C18,14:14,))

取巧
C19 =MATCH(C18,14:14,)-2
作者: ziv976688    時間: 2021-10-8 17:03

本帖最後由 ziv976688 於 2021-10-8 17:25 編輯

回復 5# ML089
不僅是非陣列的一般公式解(利於套用在程式碼),且精明(利用固定A&B的-2欄差)而簡短的解法~
承教了~感恩

另外再延伸請教
C19
=IF(C18="","",INDEX($1:$1,LARGE(IF(($C14:$AY14=C18)*($C14:$AY14<>""),COLUMN($C:$AY)),COUNTIF($C18:C18,C18))))
陣列公式  右拉到AY19填滿(因為公式有套用在程式碼內,事前不知第18列數字的顯示迄止格,所以預拉到AY19),
即C19=
當$C14:$AY14的某儲存格<>""且$C14:$AY14=C18時,
則C19顯示第14列該欄的第1列同欄值;
另當第18列有2格以上的相同值時,則該第19列的值以由大而小排序。
詳如附件 : [attach]34181[/attach]

請問:您的C19公式會如何作解?
謝謝您


作者: ML089    時間: 2021-10-8 18:18

C18:AB19 區域陣列公式,排列 14列數值由小至大及1列數值由大至小
=IFERROR(INDEX(A:AY,{14;1},1/MOD(SMALL(IF(C14:AY14<>"",C14:AY14*10^4+1/COLUMN(C:AY)),COLUMN(A:Z)),10^4)),"")

輸入公式 (以前陣列公式要先刪除)
1 先複製公式
2 選擇 C18:AB19 儲存格
3 編輯列貼上公式
4 鼠標位於編輯列,用三鍵(CTRL+SHIFT+ENTER)輸入公式


COLUMN(A:Z) 取出幾個,最大應該是資料有幾欄就設幾欄,但貼上(顯示)欄位可以縮短至空格出現1格位置,表示資料完全出現。
作者: ziv976688    時間: 2021-10-8 19:16

回復 7# ML089
版大 :
區域陣列公式的效率很高。
謝謝您的耐心指導~感恩




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)