You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Query函数根据交易类型将金额转为正负值(Google Sheets)

Google Sheets 支票簿自动计算交易金额正负(含转账/信用卡还款)

问题背景

用Google Sheets管理支票簿,通过表单离线录入交易后同步到工作表,需要根据交易类型自动将金额(绝对值)转为对应正负值,无需手动输入+/-,同时支持信用卡还款场景:储蓄账户记为Withdrawal(负值),信用卡账户记为Deposit(正值)。

表格结构

  • 工作表Form Responses:
    • B列:交易发起账户
    • C列:交易类型(Withdrawal/Deposit/Transfer/Payment)
    • D列:转账/还款目标账户
    • E列:交易金额(绝对值)
    • F列:交易描述
  • 当前工作表A2单元格:需查询的目标账户名称

正确公式

将以下公式输入到目标单元格(比如当前工作表的B2):

=QUERY('Form Responses'!B:F, 
  "SELECT F, 
          CASE 
            WHEN C='Deposit' AND B='"&A2&"' THEN E
            WHEN C='Withdrawal' AND B='"&A2&"' THEN -E
            WHEN C='Transfer' AND B='"&A2&"' THEN -E
            WHEN C='Transfer' AND D='"&A2&"' THEN E
            WHEN C='Payment' AND B='"&A2&"' THEN -E
            WHEN C='Payment' AND D='"&A2&"' THEN E
            ELSE 0
          END,
          C, D
   WHERE B='"&A2&"' OR D='"&A2&"'
   ORDER BY 'Form Responses'!A DESC", 0)

公式说明

核心逻辑(CASE语句)

根据交易类型和目标账户的角色(发起/接收)自动计算金额正负:

  • Deposit:目标账户是发起账户(B列)→ 金额为正(+E)
  • Withdrawal:目标账户是发起账户(B列)→ 金额为负(-E)
  • Transfer:目标账户是发起账户(转出)→ 负;目标账户是接收账户(转入)→ 正
  • Payment(信用卡还款):目标账户是还款发起方(储蓄账户)→ 负;目标账户是信用卡(接收方)→ 正

其他参数

  • WHERE B='"&A2&"' OR D='"&A2&"':筛选所有涉及目标账户的交易
  • ORDER BY 'Form Responses'!A DESC:按表单提交时间倒序排列,最新交易优先显示
  • 最后参数0:表示查询结果不包含表头(若需要表头可改为1)

注意事项

  • 确保交易类型的拼写与Form Responses中C列完全一致(大小写、空格都要匹配)
  • A2的账户名称必须和B、D列的账户名称完全相同,否则无法匹配交易
  • 可根据需求调整SELECT后的列,比如不需要显示交易类型和目标账户,可删除, C, D

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:55:31