下一章 上一章 目录 设置
32、第32章:代码做的预算表 ...
-
老破小的客厅像个硝烟未散的战场。裸露的砖墙被铲掉大半墙皮,露出犬牙交错的灰泥层,如同剥去皮肉的伤口。空气里弥漫着粉尘、石灰、劣质胶水和新鲜水泥的混合气味,浓烈得刺鼻。地面堆满蛇皮袋装的腻子粉、散落的石膏板边角料、还有几卷裹着泥浆的六类网线(AMP的蓝灰色外皮在灰暗中泛着冷光)。西晒的阳光穿过蒙尘的窗框,在狼藉的地面上投下斜长的光栅,灰尘在其中狂舞,像亿万躁动的幽灵。
吴舟蜷在角落唯一一块干净的水泥地上,后背抵着冰凉的砖墙。那台老旧的方正笔记本电脑搁在膝头,屏幕幽蓝的光映着他专注的侧脸,额角沾着一抹干涸的石膏粉。键盘油腻得发亮,几个常用键的字母早已磨平。他指尖翻飞,敲击声在空旷的房间里发出清脆的回响,像精密仪器的齿轮在咬合。
屏幕上,Excel表格铺满了整个界面。这不是普通的表格。左侧是密密麻麻的材料清单:多乐士金装五合一(18L)、圣象复合地板(E0级)、欧普集成吊顶(铝扣板)、AMP六类网线(305米/箱)……每一项后面跟着实时波动的市场单价(数据来自他刚写的爬虫脚本抓取的建材网站)、精确到小数点后两位的用量计算公式、以及根据用量和单价自动计算的总价。右侧是一个动态的平面图,用简单的线条勾勒出房间轮廓,不同区域用不同颜色填充,颜色深浅代表该区域材料费用的占比。
最神奇的是中间区域。一个用VBA生成的动态折线图随着他输入的数据实时变化。横轴是“材料费”、“人工费”、“管理费”等成本项,纵轴是金额。当他在“乳胶漆”用量栏将数字从“3桶”改为“2.5桶”时,代表“材料费”的蓝色柱状图瞬间缩短一截,总预算金额随之跳动下降!同时,平面图上代表墙面的浅蓝色区域颜色也同步变浅!反之,当他在“网线”品牌栏将“AMP”换成更贵的“康普”,橙色柱状图猛地窜高一截,总金额数字也像被鞭子抽打般向上跳动!
***************
不可见的代码
***************
代码在后台无声运行,像一位冷酷的财务总监,精准地切割着每一分钱的流向。
“吱呀——”
虚掩的铁门被推开,带进一股热风和更浓郁的灰尘。陈雪牵着朵朵的手站在门口,被屋里的景象吓了一跳。朵朵小手紧紧攥着妈妈的衣角,大眼睛好奇地打量着这片“废墟”,小鼻子皱了皱,被粉尘呛得打了个小喷嚏。
“小吴?这…这灰太大了!”陈雪用手扇着面前的空气,目光落在吴舟膝头的电脑屏幕上,幽蓝的光在昏暗的废墟里显得格外醒目,“你…你在弄啥?”
“预算。”吴舟头也没抬,指尖在触摸板上滑动,将“瓷砖”品牌从“马可波罗”换成“东鹏”。屏幕上,代表“材料费”的蓝色柱状图应声缩短一小截,总预算金额减少了372.5元。平面图上,代表卫生间的深灰色块颜色也略微变浅。
陈雪凑近了些,弯下腰,目光被屏幕上跳动的数字和自动变化的图表牢牢吸住。“这…这是啥表?咋自己会动?”她声音里充满了难以置信的惊奇,像看到魔术师从空帽子里变出鸽子。她经营打印店多年,见过无数表格,从没见过这种能自己“算账”、自己“画图”的活物!
朵朵也挣脱妈妈的手,好奇地跑到吴舟身边,小脑袋凑到屏幕前,被幽蓝的光映亮了脸蛋。“叔叔!花花!”她指着平面图上根据成本比例自动渲染出的、深浅不一的色块,兴奋地叫道。在她眼里,那不是什么成本分析,而是一幅神奇的、会变颜色的画!
吴舟侧过身,让出一点空间。“动态预算表。”他简单解释,手指在“人工费”的输入框里输入一个数字。屏幕上,代表人工的橙色柱状图猛地拔高,总金额数字像受惊的兔子般向上窜了一大截!
“老天爷!”陈雪倒吸一口凉气,眼睛瞪得溜圆,“这比…比装修公司那死模板强一万倍!”她猛地想起自己店里那本被各种手改涂得面目全非的账本,还有每次算账时按坏的计算器。一种强烈的渴望在她眼底燃起。她手忙脚乱地从随身旧布袋里掏出一个小巧的笔记本和一支圆珠笔,本子边缘已经卷曲,封面印着褪色的“工作笔记”字样。
“小…小吴,”她声音带着一丝不易察觉的颤抖和恳求,手指无意识地摩挲着笔记本粗糙的封面,“这…这咋弄的?能…能教教姐不?店里那账…乱得我心慌…”她想起前夫欠下的赌债,那些纠缠不清的高利贷利息,就是因为她算不清账,被坑了一次又一次。如果她也有这样一个“活”的账本……
吴舟没说话,只是将笔记本电脑微微转向她。屏幕幽蓝的光映着陈雪因紧张和期待而微微发红的脸颊。他调出VBA编辑器,复杂的代码行如同天书般滚动。陈雪的眼神瞬间从渴望变成了茫然和敬畏,像仰望一座无法攀登的高峰。
“公式。”吴舟退出编辑器,点开几个关键单元格,露出里面嵌套的函数公式。相对简单的SUMIFS(条件求和)、VLOOKUP(查找匹配)、以及根据比例计算色值的RGB函数公式暴露出来。
=SUMIFS(Material_Cost, Material_Type, "油漆") // 计算所有油漆类材料总成本
=VLOOKUP(B2, Material_Price_Table, 3, FALSE) // 根据材料名称查找最新单价
=ROUND((B2_Cost / Total_Cost) * 255, 0) // 计算色值分量 (例如红色分量)
陈雪如获至宝!她赶紧翻开笔记本,圆珠笔尖因用力而微微颤抖,在纸页上划出歪歪扭扭的字迹。她对照着屏幕,一个字母一个数字地抄写那些对她而言如同符咒般的公式。嘴里还念念有词:“SUM…I…F…S…逗号…材料成本…逗号…”汗水顺着她的鬓角滑落,滴在笔记本上,洇开一小片深色的圆斑。她抄得极其专注,仿佛在临摹救命的符箓,连朵朵拽她衣角都没察觉。
朵朵见妈妈不理她,撅着小嘴,从自己的小背包里掏出皱巴巴的画纸和蜡笔。她趴在一块相对干净的石膏板上,小屁股撅得老高。她看看四周光秃秃的墙壁,又看看吴舟叔叔专注的侧脸,再看看屏幕上那个代表房间的方块图。小眉头皱起,似乎在努力思考。然后,她拿起蓝色蜡笔,在画纸上歪歪扭扭地画了一个大方块(房子),里面画了几个小方块(房间)。她在代表吴舟房间的那个小方块里,认真地画了一个……秋千!用绿色的蜡笔画了支架,红色的蜡笔画了座椅,还用黄色的蜡笔在秋千旁边画了几个小圈圈——小花!
“叔叔!”朵朵举起画纸,献宝似的凑到吴舟眼前,小脸上满是期待,“给你的房间!有秋千!”她指着那个歪歪扭扭的秋千,又指了指光秃秃的水泥墙角,“在那里!荡高高!”
吴舟的目光从屏幕上移开,落在画纸上。那稚嫩的线条,鲜艳的色彩,天马行空的想象——秋千?在这个连床都没有的毛坯房里?他冰冷的眼底,似乎有一丝极细微的涟漪荡开。他接过画纸,指尖拂过粗糙的纸面,蜡笔的油彩在指腹留下温热的触感。
“朵朵画得真好。”他声音低沉,听不出情绪,却伸手揉了揉朵朵柔软的头发。
陈雪终于抄完最后一个公式,如释重负地松了口气,抹了把额头的汗。她看到女儿的画,忍不住“噗嗤”一声笑了出来:“傻丫头!哪有在屋里装秋千的!”但笑着笑着,眼眶却微微发热。这破败的毛坯房,冰冷的代码,复杂的公式……却因为女儿一个天真的想象,突然染上了一层温暖的、近乎荒诞的色彩。
吴舟将朵朵的画小心地放在膝头,紧挨着笔记本电脑。他再次看向屏幕。动态预算表上,数字和图表依旧在冷静地跳动、变化。人工费被他手动下调了5%,橙色柱状图缩短了一截,省下的钱自动加到了“网线”预算上(他指定了优先级),确保那至关重要的六类线不会被克扣。冰冷的逻辑,精确的计算,构筑着未来的堡垒。
而膝头那张画纸上,歪扭的秋千和彩色的小花,像一粒倔强的种子,在这片由代码和水泥构筑的冰冷地基上,悄然萌发出一点鲜活的绿意。他指尖无意识地划过屏幕上代表“吴舟房间”的那个色块,又轻轻拂过画纸上那个红色的秋千座椅。
代码可以计算成本,规划路径,甚至预测未来。但它算不出一个孩子天马行空的想象,也算不出此刻心底那片被童真轻轻触碰的柔软。重生归来,他手握代码利剑,斩断过往枷锁,构筑未来基业。但或许,真正重要的代码,不是写在冰冷的编辑器里,而是刻在这些粗糙却滚烫的人间烟火中,如同朵朵画下的那个秋千,简单,笨拙,却承载着最纯粹的、名为“生活”的重量。他关掉动态预算表,屏幕暗下去的瞬间,膝头那张蜡笔画在幽暗中,反而显得更加鲜艳夺目。