標題:
年度只加大於零
[打印本頁]
作者:
myleoyes
時間:
2015-3-25 21:53
標題:
年度只加大於零
各位前輩你們好!!
年度只加大於零不知公式為何?
請知道的前輩,不吝賜教謝謝再三!!
作者:
k123456770
時間:
2015-3-26 09:48
不好意思, 無法下載附件
是否可以 將範例拍照po出 or 清楚描述問題
作者:
p212
時間:
2015-3-26 10:58
本帖最後由 p212 於 2015-3-26 11:08 編輯
回復
1#
myleoyes
假設儲存格R1為指定「年分」之輸入欄位,且只加大於零的「金額」
1.若輸入年分為「民國」年,則儲存格Q1公式
=SUMPRODUCT((YEAR($K$4:$K$12)=$R$1+1911)*($Q$4:$Q$12>0)*($Q$4:$Q$12))
2.若輸入年分為「西元」年,則儲存格Q1公式
=SUMPRODUCT((YEAR($K$4:$K$12)=$R$1)*($Q$4:$Q$12>0)*($Q$4:$Q$12))
請參考!
作者:
myleoyes
時間:
2015-3-26 21:56
回復
3#
p212
k123456770前輩!請看動畫檔...
前輩!你可能誤解小弟的問題
這樣公式無法得到答案
=SUMPRODUCT((TEXT(K$4:K$12,"YYY")=TEXT(AY2,"YYY"))*SUMIF(Q4:Q12,">0"))
=SUMPRODUCT((TEXT(K$4:K$12,"YYY")=TEXT(AY2,"YYY"))*SUMIF(Q4:Q12,">0"))
所以用補助欄是可以達成需求
AY2=DATE(YEAR(TODAY()),1,1)
AY3=DATE(YEAR(TODAY()),12,31)
AY4=IF(AND(K4>=AY$2,K4<=AY$3,Q4>0),Q4,"")下拉
但心想應該不需要靠補助欄就可以達到目的不是嗎?
請前輩不吝再賜教謝謝再三!!
作者:
JBY
時間:
2015-3-26 22:35
......這樣公式無法得到答案
=SUMPRODUCT((TEXT(K$4:K$12,"YYY")=TEXT(AY2,"YYY"))*SUMIF(Q4:Q12,">0"))
=SUMPRODUCT((YEAR(K$4:K$12)=YEAR(TODAY()))*(Q4:Q12>0),Q4:Q12)
作者:
p212
時間:
2015-3-27 09:57
本帖最後由 p212 於 2015-3-27 10:10 編輯
回復
4#
myleoyes
很抱歉誤解了您的意思,以增加輔助儲存格方式處理。
將3#的公式內容改為5# JBY大提供的修改公式即可,所以不需另增輔助儲存格 (3#中儲存格R1指定「年分」)。
=SUMPRODUCT((YEAR($K$4:$K$12)=
$R$1
)*($Q$4:$Q$12>0)*($Q$4:$Q$12))
↓
=SUMPRODUCT((YEAR(K$4:K$12)=
YEAR(TODAY())
)*(Q4:Q12>0),Q4:Q12)
請參考!
作者:
myleoyes
時間:
2015-3-27 21:34
回復
6#
p212
兩位前輩!真抱歉小弟也弄錯原始檔的用意
應該 AY4=IF(AND(K4>=AY$2,K4<=AY$3,M4>0,Q4>0),Q4,"")
也就是說M欄與Q欄要同時大於零才加總
再附檔請不吝再賜教謝謝再三!! 辛苦囉!
作者:
JBY
時間:
2015-3-27 23:26
回復
7#
myleoyes
=SUMPRODUCT((YEAR(K$4:K$12)=YEAR(TODAY()))*(M4:M12>0)*(Q4:Q12>0),Q4:Q12)
或者
=SUMPRODUCT((TEXT(K$4:K$12,"yyy")=TEXT(TODAY(),"yyy"))*(M4:M12>0)*(Q4:Q12>0),Q4:Q12)
作者:
myleoyes
時間:
2015-3-28 21:39
回復
8#
JBY
前輩想到囉謝謝!!另一問題請教
L1為 67 顯示為 67年次 型態
K1輸入1978/2/16 顯示為 67/2/16 型態
K2=CONCATENATE(MID(YEAR(K1),1,4)-1911)
照理說 K2=L1沒錯
按分析鈕卻無法執行程式
Sub 分析()
If [K2] <> [L1] Then MsgBox ("很抱歉系統無法分析!輸入資料為 " & [K2] & " 年次不等於來源 " & [L1] & " 年次的資料,請修改輸入資料OK!!"): End
執行程式
End Sub
為何K2的 67非L1的 67
不知有何公式可以取代或其他方法
請不吝賜教謝謝再三!!辛苦囉!
K2不能用程式轉為值如右 [K2]=Evaluate("=CONCATENATE(MID(YEAR(K1),1,4)-1911)")
作者:
JBY
時間:
2015-3-28 23:24
回復
9#
myleoyes
L1: 67
K1: 1978/2/16
K2 =CONCATENATE(MID(YEAR(K1),1,4)-1911)
為何 K2 的 67 非 L1 的 67 ?
因為 K2 公式返回的 67 為文本, 而, L1 的 67 為數值
....................................................................................................................
K2, 改為 =--CONCATENATE(MID(YEAR(K1),1,4)-1911)
但是,
為什麼公式使用 CONCATENATE 和 MID 函數 ??
K2 公式, 可以直接使用 :
=YEAR(K1)-1911
作者:
myleoyes
時間:
2015-3-29 17:40
回復
10#
JBY
前輩!謝謝!!
用中曆來輸入出生日期比較順
所以K1是由如下程式寫入
Sub 出生日期()
ZZ = InputBox("輸入日期", " 請輸入你的出生年月日", "67/2/16")
If ZZ <= 0 Then Exit Sub
a = Split(ZZ, "/")
a(0) = a(0) + 1911
[K1] = Join(a, "/")
[K1].NumberFormat = "e/m/d"
End Sub
如果K2=YEAR(K1)-1911是無法顯示正確的年次
哪知K2=CONCATENATE(MID(YEAR(J1),1,4)-1911)雖可顯示正確的年次
但卻非數值頭痛耶!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)