首页 文章 精选 留言 我的

精选列表

搜索[表单生成],共10000篇文章
优秀的个人博客,低调大师

Python 审计函证控制表自动生成与差异追踪

## 问题 函证是报表审计核心程序,控制表要跟踪"应发/已发/回函/相符/差异"五态,并汇总未回函和差异金额。手工维护 Excel 易漏未回函跟进。用 Python 读函证清单,自动统计各状态和差异总额,输出控制汇总。 ## 示例代码 ```javascript items = [ # 名称, 账面金额, 状态(sent/replied/unreplied), 回函金额 ("bank_a", 1000000, "replied", 1000000), ("bank_b", 500000, "unreplied", 0), ("cust_x", 800000, "replied", 780000), ("cust_y", 300000, "sent", 0), ("supp_z", 200000, "replied", 200000), ] sent = sum(1 for *_ , s, _ in [(i[0],i[1],i[2],i[3],0) for i in items] if s in ("sent","replied")) replied = [i for i in items if i[2] == "replied"] unreplied = [i for i in items if i[2] == "unreplied"] diffs = [(i[0], i[1] - i[3]) for i in replied if i[1] != i[3]] diff_sum = sum(d for _, d in diffs) print("已发:", sent, "未回函:", len(unreplied), "差异笔:", len(diffs), "差异额:", diff_sum) ``` ## 关键点 - 函证五态:应发(选定样本)→ 已发(寄出)→ 回函(收到)→ 相符 / 差异,未回函要列替代程序。 - 差异追踪:回函金额 ≠ 账面金额即记差异,汇总差异额驱动进一步审计(查未达账、错记)。 - 未回函不能算"无问题",必须做替代测试(查验收付款凭证、期后收款)并在底稿留痕。 - 银行存款函证须覆盖所有开户行含零余额和注销户,漏户是高频缺陷。 - 控制表要和"函证汇总表""回函原件"三者钩稽,数字对不上就是底稿硬伤。 ## 小结 函证控制 = 统计已发/回函/未回函 + 汇总差异额。Python 一行出五态汇总,未回函和差异不再埋没在 Excel 里。 --- 函证未回函时,你的替代测试怎么做到让监管挑不出毛病?是查期后收款还是翻收付款凭证?评论区交流你的打法。 如果这篇对你有启发,欢迎点赞、收藏、关注,并在评论区留下你的审计难题。下期预告:审计 Python 自动化工具箱总览(全部 72 篇脚本目录 + 可直接套用模板)。 会计师事务所的一名注册会计师

优秀的个人博客,低调大师

Python 现金流量表间接法自动生成

## 问题 编制现金流量表(间接法)要把净利润调节为经营活动现金流量,调节项多且方向易错(如应收增加是减项、应付增加是加项)。手工逐笔加减常串号。用 Python 把调节项按方向列成一张表,自动算出经营现金流净额并和直接法交叉验证。 ## 示例代码 ```javascript net_profit = 5000000 items = { "depreciation": 800000, # 加:折旧 "amortization": 200000, # 加:摊销 "ar_increase": 600000, # 减:应收增加 "inv_increase": 400000, # 减:存货增加 "ap_increase": 300000, # 加:应付增加 "prepaid_increase": 100000, # 减:预付增加 } # 方向:increase类资产科目为减项,increase类负债科目为加项 add = items["depreciation"] + items["amortization"] + items["ap_increase"] sub = items["ar_increase"] + items["inv_increase"] + items["prepaid_increase"] cfo = net_profit + add - sub print(round(cfo, 2)) ``` ## 关键点 - 间接法逻辑:净利润 + 非付现费用(折旧/摊销/减值)± 营运资本变动 = 经营现金流。 - 方向铁律:资产类科目余额增加=现金流出=减项;负债类科目余额增加=现金流入=加项。 - 应收、存货、预付是资产,增加减、减少加;应付、预收是负债,增加加、减少减。 - 投资/筹资活动现金流不进间接法调节表,只在主表另有板块,别混进来。 - 间接法算出的经营现金流应和直接法(收现−付现)相符,差异锁定在调节项漏记。 ## 小结 经营现金流 = 净利润 + 非付现费用 − 资产增 + 负债增。Python 把调节方向压成加减两行,间接法不再串号。 --- 你做现金流量表间接法时,最常在哪个调节项上踩坑?是应收、存货还是应付?欢迎在评论区聊聊你的实务血泪史,下期接着拆。 如果这篇对你有启发,欢迎点赞、收藏、关注,并在评论区留下你的审计难题。下期预告:审计抽样之货币单元抽样(MUS)样本量测算。 会计师事务所的一名注册会计师

优秀的个人博客,低调大师

用 pandas 自动生成银行余额调节表(附完整代码)

企业账面银行存款余额和银行对账单余额常对不上,差异来自未达账项:企业已记银行未记、银行已记企业未记。手工编调节表容易漏。本文用 pandas 把两边流水按金额比对,自动标出未达项,并验证调节后余额是否相等。 一、数据假设 book.xlsx(企业账面)与 bank.xlsx(银行对账单)至少包含这些列(代码中用英文列名,便于直接运行): - date 日期 - desc 摘要 - amount 金额(收正付负) (实战把路径和列名换成你自己的即可) 二、核心思路 1. 找出"账面有、对账单无"的未达项(企业已记银行未记); 1. 找出"对账单有、账面无"的未达项(银行已记企业未记); 1. 以账面余额为基础,加银行已记企业未记项、减企业已记银行未记项,得到调节后余额; 1. 与银行对账单余额比对,相等即通过。 三、完整代码(自包含,可直接跑) ```javascript import pandas as pd book_bal = 100000.0 bank_bal = 103000.0 book = pd.DataFrame({ "date": ["2026-03-28", "2026-03-30"], "desc": ["recv A", "pay B"], "amount": [5000.0, -2000.0], }) bank = pd.DataFrame({ "date": ["2026-03-29"], "desc": ["recv A"], "amount": [5000.0], }) # book items not in bank yet (enterprise recorded, bank not) unmatched_book = book[~book["amount"].isin(bank["amount"])] # bank items not in book yet (bank recorded, enterprise not) unmatched_bank = bank[~bank["amount"].isin(book["amount"])] adj_bal = book_bal + unmatched_bank["amount"].sum() - unmatched_book["amount"].sum() print("unmatched book side:\n", unmatched_book) print("unmatched bank side:\n", unmatched_bank) print("adjusted book balance:", adj_bal) print("bank statement balance:", bank_bal) print("reconciled:", abs(adj_bal - bank_bal) < 0.01) ``` 四、几个实战坑 - 仅凭金额匹配会误判(同金额多笔),实战加日期容差或凭证号辅助键; - 借方贷方方向两边可能相反,统一成"收正付负"再比; - 多账户要按账号分组合并,不能跨账户混比; - 调节后仍有差异说明有记账错误,需逐笔查; - 读 csv 注意指定编码为 gbk(Windows 中文环境),xlsx 一般无此问题。 五、边界 脚本只负责比对和标注未达项,差异原因和账务调整由你判。客户数据本地跑,别贴通用云端大模型。 我是会计师事务所的一名注册会计师,做过财报审计、经济责任审计、专项审计、尽职调查、内控评价各类项目,从手写底稿到 AI 辅助都经历过。如果你也在财务 / 审计岗位想提效,欢迎关注、交流实战。 感谢你看到这里。如果这段代码对你有用,欢迎点赞 + 收藏 + 关注——我是会计师事务所的一名注册会计师,会继续分享审计提效与 Python 实战,咱们下篇见。

优秀的个人博客,低调大师

用 WorkBuddy 整理云厂商账单生成月度成本报告

每个月最后一天,最让人头大的不是写周报,是云厂商那张账单。 导出来的 CSV 动辄上万行:几十个产品、三五个账号、币种还混着来。财务要的是"哪个业务线花了多少",老板要的是"这个月比上个月涨了还是降了",你自己想看的是"有没有冤枉钱"。可原始账单里全是一行行 `PostPaid`、`Discount`、`Refund` 的流水,根本对不上号。 这篇文章就用 WorkBuddy 把这件苦差事变成一句话的事:**每月 1 号自动出一份人话版月度成本报告,直接推到你手机上。** ## 方案架构 整个链路分成四步,全程不需要你每月手动点: 1. **拉取**:WorkBuddy 定时从云厂商账单 API / 控制台下载当月账单 CSV(或你手动丢一个文件进目录也行)。 1. **归类**:用一段 Python 把流水按"产品 / 项目标签 / 账号"三个维度聚合,把折扣、退款、预留实例抵扣都算干净。 1. **成文**:把聚合结果交给 WorkBuddy,让它用固定 Prompt 写成带结论的中文报告,而不是堆数字。 1. **推送**:通过企业微信机器人 / 邮件把报告发出去,月初醒来手机就有。 核心思路就一句:**机器做聚合,AI 做翻译,定时做触发。** ## 复制即用的解析脚本 把下面这段存成 `bill_aggregator.py`,丢进一个目录,每月把账单 CSV 命名为 `bill_2026-07.csv` 放进去即可: ```javascript import csv, collections, sys from datetime import datetime def aggregate(path): by_product = collections.defaultdict(float) by_tag = collections.defaultdict(float) total = 0.0 with open(path, encoding='utf-8-sig') as f: for row in csv.DictReader(f): # 字段名各云厂略有差异,按需改 key amount = float(row.get('CashAmount') or row.get('金额') or 0) product = row.get('ProductName') or row.get('产品') or '未知' tag = row.get('ProjectName') or row.get('项目') or '未归类' by_product[product] += amount by_tag[tag] += amount total += amount return total, by_product, by_tag if __name__ == '__main__': total, prod, tag = aggregate(sys.argv[1]) print(f"本月总支出: {total:,.2f}") print("--- 按产品 TOP5 ---") for k, v in sorted(prod.items(), key=lambda x: -x[1])[:5]: print(f"{k}: {v:,.2f} ({v/total*100:.1f}%)") print("--- 按项目 ---") for k, v in sorted(tag.items(), key=lambda x: -x[1]): print(f"{k}: {v:,.2f}") ``` 跑完会得到类似: ```javascript 本月总支出: 12,840.50 --- 按产品 TOP5 --- 云服务器CVM: 5,210.00 (40.6%) 对象存储COS: 2,330.00 (18.1%) 云数据库MySQL: 1,880.00 (14.6%) ... --- 按项目 --- 推荐系统: 6,100.00 数据湖: 3,240.00 未归类: 1,200.00 ``` ## 让 AI 把数字讲成人话 聚合出的数字还是冷冰冰的。在 WorkBuddy 里用这个 Prompt 把 CSV 摘要转成报告: > 你是一名云成本分析师。下面是我本月云账单的聚合数据(总支出、按产品、按项目)。请输出一份**月度成本报告**,要求: 1. 用 3 句话给出总体结论(涨/降、主要原因); 2. 列出 Top3 花钱产品并给出优化建议; 3. 标出"未归类"金额,提示我这可能漏打了项目标签; 4. 语气像给老板的周报,不要堆数字,要有判断。 数据:{粘贴上面的输出} WorkBuddy 会吐出一份能直接转发的报告,而不是一堆表格。 ## 排坑:这三个地方最容易算错 1. **折扣 / 代金券行是负数或 0**:聚合时别直接求和就完事,要先按"实际扣费"口径过滤,否则总支出会虚高。 1. **预留实例(RI)抵扣**:开了预留实例后,账单里对应的按需行会变成抵扣行,看起来"花费变少",其实是提前付过了——算趋势时要把预留实例的包年费用摊进当月。 1. **跨账号合并**:测试账号和生产账号的 CSV 要合并后再聚合,否则"未归类"会异常高,你永远找不到钱去哪了。 我上个月这么跑下来,一眼发现"推荐系统"项目下有一台 8 核机器连续三周 CPU 不到 5%,直接降配,当月省了约 18%。这钱本来是看不见的。 ## 把它挂成每月自动任务 在 WorkBuddy 里建一个「每月 1 号 09:00」的定时任务,prompt 就三步:运行上面的脚本 → 把输出喂给报告 Prompt → 推送到企业微信。这样你再也不用月底熬夜对账,月初手机弹一条消息,本月成本一目了然。 > 本文是「WorkBuddy 实战」系列之一。下一篇我们会聊怎么把竞品官网的更新自动监控并异动推送,同样零人工干预。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册