一般这种情况需要建两张sheet:
sheet1,把各种参数、各种规格、各种价格列明。
sheet2,录入各个订单。在单价一列使用函数查询sheet1当中对应的价格。然后乘以数量,自动计算出总价。
思路就是这样了。
单价1、2、3都是从sheet1里自动带出来的。也可以直接把三个数字相加。为了看着方便,我就分开写了。
#include<stdio.h>struct sp
{
char name[10] //名称数自己定
float price
int num
float sum
}sp[5]
float total=0
int main()
{
int i
float calc(float sum1,float sum2, float sum3, float sum4, float sum5)
void output()
for(i=0i++i<5)
{
printf("请输入第%d种商品的名称,单价,数量:\n",i)
gets(sp[i].name)
scanf("%f",&sp[i].price)
scanf("%d",&sp[i].num)
sp[i].sum=price*num
output()
printf("%f\n",calc(sp[0].sum,sp[1].sum,sp[2].sum,sp[3].sum,sp[4].sum))
}
float calc(float sum1,float sum2, float sum3, float sum4, float sum5)
{
total=sum1+sum2+sum3+sum4+sum5
return total
}
void output()
{
int i
for(i=0i++i<5)
{
puts(sp[i].name)
printf("\n%f\n",sp[i].price)
printf("%d\n",sp[i].num)
printf("%f\n",sp[i].sum)
}
}
老板让制作一个报价单,当填入需求的时候,总报价就自动的计算出来了
1、物品较少的时候
制作的效果如下,我们只需要输入物品和数量,单价和金额能够自动的进行计算
这个简易的报价单只需要两步进行制作:
?简单的设计一下数据样式,然后在
E3单元格中输入的公式:
=SUM(G3:G1500)
F4中输入公式:
=IF(D4="","",VLOOKUP(D4,A:B,2,0)),向下拖动一部分
G4中输入公式:
=IF(D4="","",E4*F4),向下拖动一部分
使用IF函数实现了,当D4单元格中没有数据的时候,后面都显示空白,有数据的时候,会自动的进行VLOOKUP查找匹配到单价,从而计算总金额
?选中D列,然后在数据选项卡的数据验证下面,选择序列,数据来源,选择A2:A8单元格
2、物品较多的时候
当物品比较多的时候,D列的下拉菜单就会很多,很难进行选择
这个时候我们可以进行一个优化,先看效果如下:
当我们在C3单元格提前输入一个关键词,那么下拉菜单就自动的适配只有这个关键字的物品,再进行选择。
前面的公式都是保持不变的,关键在于这个下拉菜单的制作
A列中的商品数据现在是22个,输入公式进行套用即可,替换掉下方的22和23
所以我们在J列里面输入公式:
=INDEX($A$1:$A$23,SMALL(IF(ISNUMBER(FIND($C$3,$A$1:$A$22)),ROW($A$1:$A$22),23),ROW(C1)))&""
输入完公式按CTRL+SHIFT+ENTER,向下填充
然后在数据验证序列里面输入的公式是:
输入的公式是:
=OFFSET($J$1,0,0,1048576-COUNTBLANK($J:$J),1)
这样就能实现了在C3先输入一个关键字,然后下拉菜单就是和这个关键字相关的内容了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)