標題:
[發問]
有層次的銷售金額及退貨金額之公式,要如何設定
[打印本頁]
作者:
julieh96590
時間:
2013-2-24 23:11
標題:
有層次的銷售金額及退貨金額之公式,要如何設定
條件1:如果買進1至12個,1個1080元
條件2:如果再買進第13至40個,1個970元
條件3:如果再買進41個以上,1個700元
條件4:如果有退貨時,用後進先出法,計算退貨金額。
例如1:A客戶總共買進43個(A1),付出12*1080+(40-12)*970+(43-40)*700=42220元(B1)
例如2:A客戶後來退了5個(A2),退貨金額3*700+2*970=4040元(B2)
請問如何下銷售金額(B1)及退貨金額(B2)之公式
作者:
julieh96590
時間:
2013-2-24 23:52
以下是我對銷售金額所下的公式,請問有更簡潔的公式嗎?
銷售金額(B1)=IF(A1>40,(A1-40)*700+40120,IF(AND(41>A1,A1>12),(A1-12)*970+12960,IF(A1<13,A1*1080,0)))
但退貨金額(B2)之公式,仍未想出,請先進幫幫忙
作者:
Hsieh
時間:
2013-2-25 00:27
回復
1#
julieh96590
B1=SUMPRODUCT({1080,970,700},TRANSPOSE(FREQUENCY(ROW(INDIRECT("A1:A"&A1)),{12,40})))
B2=SUM(MIN(A2,(A1-40))*700,MIN(28,(A2-MIN(A2,(A1-40))))*970,MAX(0,12-(A1-A2))*1080)
作者:
julieh96590
時間:
2013-2-25 09:42
感謝樓上版主解答,但是如果銷售數量低於40,答案就不適用了,可否再麻煩您。
作者:
julieh96590
時間:
2013-2-25 09:59
補充說明:銷售數量低於40,只有退貨金額答案不適用了,銷售金額答案是ok
作者:
Hsieh
時間:
2013-2-25 10:17
回復
5#
julieh96590
B2=SUM(MAX(0,MIN(A2,(A1-40)))*700,MIN(28,(A2-MAX(0,MIN(A2,(A1-40)))))*970,MAX(0,12-(A1-A2))*1080)
作者:
julieh96590
時間:
2013-2-25 14:41
再感謝樓上版主解答,但是如果銷售數量低於16、退貨金額為5個(4個*970+1個*1080=4960)時,答案就不適用了,可否再麻煩您。
作者:
Hsieh
時間:
2013-2-25 17:46
B2陣列公式
=SUM(SMALL(IF(ROW(INDIRECT("A1:A"&A1))<13,1080,IF((ROW(INDIRECT("A1:A"&A1))>12)*(ROW(INDIRECT("A1:A"&A1))<41),970,700)),ROW(INDIRECT("A1:A"&A2))))
作者:
julieh96590
時間:
2013-2-25 21:22
謝謝版主,ok了,但函數我可能還要消化一下,才會懂,
作者:
Bodhidharma
時間:
2013-2-25 22:42
回復
9#
julieh96590
銷貨金額(a1)=銷貨金額(a1-a2)+退貨金額
所以
退貨金額=銷貨金額(a1)-銷貨金額(a1-a2)=
SUMPRODUCT({1080,970,700},TRANSPOSE(FREQUENCY(ROW(INDIRECT("A1:A"&A1)),{12,40})))-SUMPRODUCT({1080,970,700},TRANSPOSE(FREQUENCY(ROW(INDIRECT("A1:A"&(A1-A2))),{12,40})))
作者:
Bodhidharma
時間:
2013-2-25 23:02
本帖最後由 Bodhidharma 於 2013-2-25 23:04 編輯
回復
2#
julieh96590
依你的邏輯,可以用choose配match來寫
=CHOOSE(MATCH(A1,{0,13,41}),A1*1080,(A1-12)*970+12960,(A1-40)*700+40120)
作者:
handmuch
時間:
2013-2-26 11:44
回復
1#
julieh96590
跟綜所稅的累進課稅有點像! 只是要另作參考表格!
[attach]14251[/attach]
作者:
Hsieh
時間:
2013-2-26 16:24
本帖最後由 Hsieh 於 2013-2-26 16:30 編輯
回復
12#
handmuch
級距表的方式來寫公式,本例售出總價可使用LOOKUP函數或許更容易理解
B1=IF(A1>0,SUMPRODUCT(LOOKUP(ROW(INDIRECT("A1:A"&A1)),{0,13,41},{1080,970,700})*1),"")
B2陣列公式
=IF((A2>0)*(A2<=A1),SUM(SMALL(LOOKUP(ROW(INDIRECT("A1:A"&A1)),{0,13,41},{1080,970,700}),ROW(INDIRECT("A1:A"&A2)))),"")
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)