我想帮助编写这个excel公式。
我正在尝试根据使用百分比来计算定期付款的加权平均值,但我在逻辑表达式的最后部分失败了。
=IF(OR(B2>0,B3>0,B4>0,B5>0),(SUMIF(B2:B5,">=1",D2:D5))/(SUM(C2:C5)),0)
%[B] days[C] weighted mean[D=BxC]
30 1 30
70 30 2100
0 60 0
0 90 0
total 68.70967742
如果[B]的百分比是> = 1,我想要的是对[D]中的所有行求和。如果[B]中的相应单元格是> = 1,那么我想将它除以[C]中的天数之和。
所以在这个例子中,答案是68.70967742 --- [(30x1)+(70x30)] /(1 + 30)。 我想出的是返回11.7679558。
由于
答案 0 :(得分:2)
计算加权平均值时,您会发现import smopy
import matplotlib.animation as animation
n= 1000
%matplotlib notebook
def update(curr):
if curr == n-100:
a.event_source.stop()
lons = crime_df.X[curr:curr+100]
lats = crime_df.Y[curr:curr+100]
x,y = map.to_pixels(lats,lons)
ax.scatter(x, y, c='r', alpha=0.7, s=200)
plt.title(curr)
fig = plt.figure()
ax = smopy.Map((37.6624,-122.5168,37.8231,-122.3589), z=12)
ax = ax.show_mpl(figsize=(8,8))
a = animation.FuncAnimation(fig, update, interval=100)
非常有用!
SUMPRODUCT
根据需要返回=SUMPRODUCT($B$1:$B$4,$C$1:$C$4)/SUMIF($B$1:$B$4,">0",$C$1:$C$4)
。