利用Excel的VBA代码实现自动化 “收集原始数据、汇总计算和报表”
联系人:杨先生 电话: 电子邮箱: 以房地产销售数据为例。
两个销售中心以Excel记录销售活动,原始数据和直接使用公式形成的表格模板如下。黄色标题名称为公式项,根据已知数据自动计算。 1 原始数据收集表
1.1 产品表:所有房屋产品,主房、辅房(储藏室、车库、车位等)的基本信息; 标题名称 房行 买受人 项目 分区 分期 楼 单 层 房 面积 预售价 产权 售次 售行 房号 主房索引 销售索引 总房款 已收 待收 1.2 销售表:每次销售活动的真实记录,产品的组合及从产品表查取的基本信息; 标题名称 含义 售行 =ROW(主房[@])-ROW(销售[#标题]) 分区 分区名称 分期 分期名称 房号 手工输入数字(自定义格式) 售序 当前的销售次数,退房、换房不删除数据,所以用售次区别 含义 =ROW(主房[@])-ROW(主房[#标题]),动态的数据行号 =IFERROR(INDEX(销售[买受人],[@售行]),\,当前买受人 销售项目名称 分区名称 分期名称 数字楼号 数字单元号 数字楼层 数字方位编号 预售面积 预售价格 产权面积 =COUNTIFS(销售[主房索引],[@主房索引]),当前的销售次数,退房、换房不删除数据,所以用售次区别 对应的销售数据行。 =VALUE([@单]&TEXT([@层],\房],\,如1单元1层东户表示为1-0101(数字的自定义格式) =INDEX(项目分区[代码],MATCH([@项目]&[@分区],项目分区[分区名称],0))&[@分期]&TEXT([@楼],\房号],\,用于表间互查数据 =IFERROR([@主房索引]&ABS([@售序]),\,用于表间互查数据 买受人 顾问 实售价 储号 储款 库号 库款 位号 位款 总房款 总款 差异 主房面积 认购日期 主房款 房约日 房约价 买受人身份证号 共有人 共有人身份证号 合同交房日 贷行 贷含 贷额 公贷 资料日 贷约日 商放 公放 已收 待收 房行 主房索引 销售索引 换房 业务姓名 置业顾问姓名 合同中填写的总金额 =ROUND(SUM([@主房款],[@储款],[@库款],[@位款]),0),自动计算的总金额 =[@总房款]-[@总款] =INDEX(主房[面积],[@房行]) =IFERROR(INDEX(房款[实收日],MATCH([@销售索引]&\定金\房款[款类索引],0)),\,实交定金日期 =ROUND([@实售价]*[@主房面积],0) 购房合同签署日期 合同单价 贷款对象包含储藏室(C)、车库(K)等 贷款资料合格日 贷款合同签署日 =SUMIFS(房款[金额],房款[销售索引],[@销售索引],房款[实收日],\房款[款类],\商贷\,商业贷款到账日 =SUMIFS(房款[金额],房款[销售索引],[@销售索引],房款[实收日],\房款[款类],\公贷\,公积金贷款到账日 =SUMIFS(房款[金额],房款[销售索引],[@销售索引],房款[实收日],\房款[款类],\找差\,不含找差 =IF([@售序]>0,[@总房款]-[@已收],0) =MATCH([@主房索引],主房[主房索引],0),对应产品表的行号 =INDEX(项目分区[代码],MATCH(房款!$B$1&[@分区],项目分区[分区名称],0))&[@分期]&TEXT([@房号],\=[@主房索引]&ABS([@售序]) 因业务换房造成本次销售无效时,记录换成了哪套房子