據調查統計,2022年财務BP成為了衆多财務人跳槽的首選崗位!
作為财務BP每天都要跟業務打交道,當财務對不同的産品(産品線)完成收入和成本核算後,就可以對相應的産品毛利進行分析了。
這幾天受國際局勢的影響,大宗商品原材料價格波動較大,增加了制造業的原料采購成本,成本上漲進而影響了産品的毛利。
毛利是企業淨利潤的基礎,毛利率在一定程度上可以反映企業的競争優勢,如果企業具有持續性的競争優勢,它的毛利率會處在較高的水平,企業可以對其産品或服務自由定價,讓售價遠高于其産品或服務本身的成本;如果企業缺乏持續競争的優勢,它的毛利率就處在較低水平,企業就隻能根據産品或服務的成本來定價,賺取微薄的利潤。
我在群裡看到有很多制造業的财務BP都在為分析毛利變動的原因而苦惱,今天我們的案例将結合Python教大家如何使用基期和當期的營業數據,快速分析毛利和毛利率變動的原因。
1
數據準備
獲取實驗數據,分為基期毛利數據和本期毛利數據:
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
pd.options.display.float_format =
'{:,.2f}'.format
file = '财會實驗數據.xlsx'
df0 = pd.read_excel(file, sheet_name='毛利基期數')
df1 = pd.read_excel(file, sheet_name='毛利本期數')
#df.fillna(0,inplace=True)
df0
2
計算指标
為基期數和本期數分别計算毛利、占比、單價、單位成本、成本率、毛利率等指标:
# a.創建計算函數
def margin(df):
# 計算産品線彙總數,如果是字符串,填入文字‘合計’,數字的進行加總
df.loc['T'] = df.apply(lambda x: '合計' if isinstance(x.sum(),str) else x.sum())
df['毛利'] = df['收入']-df['成本']
df['占比'] = df['收入']/df.loc['T','收入']
df['單價'] = df['收入']/df['銷量']
df['單位成本'] = df['成本']/df['銷量']
df['成本率'] = df['成本']/df['收入']
df['毛利率'] = df['毛利']/df['收入']*100
# b.對基期數和本期數分别應用函數
margin(df0)
margin(df1)
df0
3
數據處理
将兩期數據進行拼接,注意suffixes參數填加同名字段不同表的後綴:
df2=df0.merge(df1,on=['産品線',‘分類’],
how=‘outer’,suffixes=('2018','2019'))
df2
4
進行兩期數據的分析比較
a.降價率 = 本期單價/基期單價-1
b.降本率 = 本期單位成本/基期單位成本-1
c.毛利差 = 本期毛利-基期毛利
df2['降價率']=df2['單價2019']/
df2['單價2018']-1
df2['降本率']=df2['單位成本2019']/
df2['單位成本2018']-1
df2['毛利差']=df2['毛利2019']/
df2['毛利2018']
df2['毛利率差']=df2['毛利率2019']-
df2['毛利率2018']
#方便查看結果,縮短展示列
pd.concat([df2[産品線],
df2.loc[:,'降價率']],axis=1)
将毛利差拆分為價格影響、成本影響、銷量影響:
d.價格對毛利的影響額 = (本期單價-基期單價)*本期銷量
e.成本對毛利的影響額 = -(本期單位成本-基期單位成本)*本期銷量
f.銷量對毛利的影響額 = (本期銷量-基期銷量)*基期單位毛利
df2['價格影響'] = (df2['單價2019']-df2['單價2018'])*df2['銷量2019']
df2['成本影響'] = -(df2['單位成本2019']-df2['單位成本2018'])*df2['銷量2019']
df2['銷量影響'] = (df2['銷量2019']-df2['銷量2018'])*(df2['單價2018']-df2['單位成本2018'])
# 驗證三個影響因素的合計等于毛利差
print(df2.iloc[:,-3:].sum(axis=1)-df2['毛利差'])
#方便查看結果
pd.concat([df2['産品線'],df2.loc[:,'降價率':]],axis=1)
将毛利率差拆分成價格和成本的影響(毛利與銷量無關):
g.成本影響毛利率 = 本期單位成本-基期單位成本/基期單價
h.價格影響毛利率 = -本期單位成本/本期單價 本期單位成本/基期單價
i.除成本和價格單獨對毛利的影響額外,即不同毛利的産品混合在一起所産生的影響
其中,g和h的分子分母同時乘本期銷量,因為單個産品線的計算是否乘銷量結果是一樣的,但是産品線的合計如果用單位成本和單價計算就會失真,因此乘銷量後的收入和成本總額進行計算。
df2['新收入'] = df2['單價2018']*df2['銷量2019']
# 重算合計數,倒數4列的合計拿各産品線重新加總
df2.iloc[-1:,-4:]
= df2.iloc[0:-1,-4:].sum().values
df2['成本影響毛利率'] =
df2['成本影響']/df2['新收入']*100
df2['價格影響毛利率'] =
df2['毛利率2019']-(df2['新收入']-df2['成本2019'])/df2['新收入']*100
df2['混合影響毛利率'] = df2['毛利率差']-df2['成本影響毛利率']-df2['價格影響毛利率']
#方便查看結果
pd.concat([df2['産品線'],df2.loc[:,'降價率':]],axis=1)
設計以上毛利分析模型的意義在于,如果數據有多維度,比如銷售區域、大類、渠道等,可以将子類數據傳入模型,分析每個子類的毛利:
# 如果要對源數據進行分類統計,可以将上述過程打包成一個大函數,将基期df和本期df作為參數傳入,輸出毛利影響分析表
def ma(df0,df1):
margin(df0)
margin(df1)
# 将兩期數據進行拼接
df2 = df0.merge(df1,on=['産品線','分類'],how='outer',suffixes=('2018', '2019'))
# a.降價率 = 本期單價/基期單價-1
df2['降價率'] = df2['單價2019']/df2['單價2018']-1
# b.降本率 = 本期單位成本/基期單位成本-1
df2['降本率'] = df2['單位成本2019']/df2['單位成本2018']-1
# c.毛利差 = 本期毛利-基期毛利
df2['毛利差'] = df2['毛利2019']-df2['毛利2018']
df2['毛利率差'] = df2['毛利率2019']-df2['毛利率2018']
# d.價格對毛利的影響額 = (本期單價-基期單價)*本期銷量
df2['價格影響'] = (df2['單價2019']-df2['單價2018'])*df2['銷量2019']
# e.成本對毛利的影響額 = -(本期單位成本-基期單位成本)*本期銷量
df2['成本影響'] = -(df2['單位成本2019']-df2['單位成本2018'])*df2['銷量2019']
# f.銷量對毛利的影響額 = (本期銷量-基期銷量)*基期單位毛利
df2['銷量影響'] = (df2['銷量2019']-df2['銷量2018'])*(df2['單價2018']-df2['單位成本2018'])
# 分析價格和成本對毛利率的影響(毛利與銷量無關)
df2['新收入'] = df2['單價2018']*df2['銷量2019']
# 重算合計數
df2.iloc[-1:,-4:] =
df2.iloc[0:-1,-4:].sum().values
# 成本影響毛利率 = (本期單位成本-基期單位成本)/基期單價,分子分母同時乘本期銷量
df2['成本影響毛利率'] = df2['成本影響']/df2['新收入']*100
# 價格影響毛利率 = -本期單位成本/本期單價 本期單位成本/基期單價,分子分母同時乘本期銷量
df2['價格影響毛利率'] = df2['毛利率2019']-(df2['新收入']-df2['成本2019'])/df2['新收入']*100
# 除成本和價格單獨對毛利的影響額外,即不同毛利的産品混合在一起所産生的影響
df2['混合影響毛利率'] = df2['毛利率差']-df2['成本影響毛利率']-
df2['價格影響毛利率']
return pd.concat([df2['産品線'],
df2.loc[:,'降價率':]],axis=1)
# 對A類産品進行分析,将過濾後的df作為參數傳入ma函數
ma(df0.loc[df0['分類'] ==
'A',:],df1.loc[df1['分類'] =='A',:])
未來,兼備财務知識與數字技術的複合型人才,将成為企業不可或缺的瑰寶。當财務BP掌握了數字化工具後,可以高效的進行财務分析,屆時财務通過數據描繪企業經營狀況,通過對數據挖掘、收集、整理、分析發現背後隐藏的價值,用數據來支持決策。
©圖片版權歸财碼數字化所有,如對版權有異議,請聯系後台議定處理。
本文由财碼數字化整理發布,如需轉載請務必注明以上信息。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!