夫妻 所得 分 開 計 稅 比較 為什麼 分 開 計 稅 不是 分 開 報稅 公式 怎麼 算 這個 工具 沒 涵 蓋 的 最後 更新 2026 年 9 月 11 日 夫妻 報稅 要 合併 申報 但 計 稅 方式 有 5 種 選擇 全部 合併 薪資 分 開 以 夫 或 妻 為主 各類 所得 分 開 以 夫 或 妻 為主 這個 工具 一次 跑 完 5 種 直接 告訴 你 哪個 最 省 很多 人 搞 混 申報 跟 計 稅 台灣 夫妻 不論 選 哪種 方式 最後 都要 合併 在 同 一份 綜合所得稅 申報 書 送出 沒有 各自 報 各自 的 這個 選項 真正 能 選 的是 計 稅 方式 把 兩人 的 所得 全部 合 在一起 算 一次 稅 還是 把 其中 一人 的 所得 薪資 或 全部 所得 抽出 來 單獨 算 為什麼 抽出 來 算 反而 可能 更 省 因為 台灣 所得稅 是 累進 的 兩份 中等 薪水 疊 在一起 很 容易 一起 被 推進 20 甚至 30 的 級 距 把 其中 一份 薪資 抽出 來 從 免稅 額 薪資 特別 扣除 開始 重新 往上 疊 一次 5 12 級 距 兩個 人 各自 的 前段 所得 都能 重新 吃到 低 稅率 不會 因為 疊 加 而 整 批 被 推 高 雙 薪 且 兩人 薪資 都不 低 的 家庭 最 容易 受惠 只有 一人 有 收入 的 家庭 分 開 沒有 意義 因為 沒有 第二 份 所得 可以 抽 資料 來源 所得稅 法 第 15 條 全國 法規 資料庫 財政部 稅務 入口 網 1239 號 問答 計算 在 你的 瀏覽器 執行 資料 不 送到 任何 伺服器 原始碼 在 GitHub astro island astro slot astro static slot display:contents function let e async e await await e self.Astro self.Astro only e window.dispatchEvent new Event astro:only function function e t babel helpers typeof return e typeof Symbol function typeof Symbol.iterator symbol function e return typeof e function e return e typeof Symbol function e.constructor Symbol e Symbol.prototype symbol typeof e e t function t t n if e t object t return t var r t Symbol.toPrimitive if r void 0 var i r.call t n default if e i object return i throw TypeError toPrimitive must return a primitive value return n string String:Number t function n n var r t n string return e r symbol r:r function r e t r return t n t in e Object.defineProperty e t value:r enumerable 0 configurable 0 writable 0 e t r e let i __PURE__ new Set __proto__ constructor prototype let e 0 e a e 1 e n e 2 e new RegExp e 3 e new Date e 4 e new Map n e 5 e new Set n e 6 e BigInt e 7 e new URL e 8 e new Uint8Array e 9 e new Uint16Array e 10 e new Uint32Array e 11 e 1 0 e t t let n r t return n in e e n r void 0 n e e.map t a e typeof e object e e:Object.fromEntries Object.entries e map e n e t n class o extends HTMLElement constructor e super e r this Component void 0 r this hydrator void 0 r this hydrate async var e if this.hydrator this.isConnected return let t e this.parentElement null void 0 e.closest astro island ssr if t t.addEventListener astro:hydrate this.hydrate once 0 return let n this.querySelectorAll astro slot r i this.querySelectorAll template data astro template for let e of i let t e.closest this.tagName t null t.isSameNode this r e.getAttribute data astro template default e.innerHTML e.remove for let e of n let t e.closest this.tagName t null t.isSameNode this r e.getAttribute name default e.innerHTML let o try o this.hasAttribute props a JSON.parse this.getAttribute props catch e let t this.getAttribute component url n this.getAttribute component export throw n t export n console.error hydrate Error parsing props for component t this.getAttribute props e e await this.hydrator this this.Component o r client:this.getAttribute client this.removeAttribute ssr this.dispatchEvent new CustomEvent astro:hydrate r this unmount this.isConnected this.dispatchEvent new CustomEvent astro:unmount disconnectedCallback document.removeEventListener astro:after swap this.unmount document.addEventListener astro:after swap this.unmount once 0 connectedCallback if this.hasAttribute await children document.readyState interactive document.readyState complete this.childrenConnectedCallback else let e document.removeEventListener DOMContentLoaded e t.disconnect this.childrenConnectedCallback t new MutationObserver var t t this.lastChild null void 0 t.nodeType Node.COMMENT_NODE this.lastChild.nodeValue astro:end this.lastChild.remove e t.observe this childList 0 document.addEventListener DOMContentLoaded e async childrenConnectedCallback let e this.getAttribute before hydration url e await import e this.start getRetryImportUrl e let t new URL e document.baseURI return t.searchParams.set astro retry Date.now toString t.toString async importWithRetry e try return await import e catch t return await new Promise e setTimeout e 1e3 import this.getRetryImportUrl e handleHydrationError e let t this.getAttribute component url n new CustomEvent astro:hydration error cancelable 0 bubbles 0 composed 0 detail error:e componentUrl:t this.dispatchEvent n console.error astro island Error hydrating t e async start let e JSON.parse this.getAttribute opts t this.getAttribute client if Astro t void 0 window.addEventListener astro t this.start once 0 return try await Astro t async let e this.getAttribute renderer url try let t default:n await Promise.all this.importWithRetry this.getAttribute component url e this.importWithRetry e Promise.resolve default r this.getAttribute component export default if r.includes this.Component t for let e of r.split if i.has e this.Component typeof this.Component object typeof this.Component function Object.hasOwn this.Component e throw Error Invalid component export path r this.Component this.Component e else if i.has r throw Error Invalid component export path r this.Component t r return this.hydrator n this.hydrate catch e return this.handleHydrationError e e this catch e this.handleHydrationError e attributeChangedCallback this.hydrate r o observedAttributes props customElements.get astro island customElements.define astro island o 為什麼 分 開 計 稅 不是 分 開 報稅 很多 人 搞 混 申報 跟 計 稅 台灣 夫妻 不論 選 哪種 方式 最後 都要 合併 在 同 一份 綜合所得稅 申報 書 送出 沒有 各自 報 各自 的 這個 選項 真正 能 選 的是 計 稅 方式 把 兩人 的 所得 全部 合 在一起 算 一次 稅 還是 把 其中 一人 的 所得 薪資 或 全部 所得 抽出 來 單獨 算 為什麼 抽出 來 算 反而 可能 更 省 因為 台灣 所得稅 是 累進 的 兩份 中等 薪水 疊 在一起 很 容易 一起 被 推進 20 甚至 30 的 級 距 把 其中 一份 薪資 抽出 來 從 免稅 額 薪資 特別 扣除 開始 重新 往上 疊 一次 5 12 級 距 兩個 人 各自 的 前段 所得 都能 重新 吃到 低 稅率 不會 因為 疊 加 而 整 批 被 推 高 雙 薪 且 兩人 薪資 都不 低 的 家庭 最 容易 受惠 只有 一人 有 收入 的 家庭 分 開 沒有 意義 因為 沒有 第二 份 所得 可以 抽 公式 怎麼 算 全部 合併 計 稅 兩人 所得 加總 減掉 合併 的 免稅 額 每人 97,000 標準 扣除額 合併 262,000 薪資 特別 扣除 按 級 距 算 一次 薪資 所得 分 開 計 稅 其中 一人 的 薪資 所得 只 減 自己 的 免稅 額 97,000 自己 的 薪資 特別 扣除 最高 218,000 單獨 算 一次 級 距 剩下 的 所得 另一 人 薪資 全部 其他 所得 合併 算 用 共同 的 標準 扣除額 剩下 的 免稅 額 各類 所得 分 開 計 稅 邏輯 相同 但 抽出 來 的是 其中 一人 的 全部 所得 薪資 利息 等 不只 薪資 部分 五種 算法 都 跑 一次 稅額 最低 的 就是 最 有利 的 申報 方式 資料 來源 所得稅 法 第 15 條 全國 法規 資料庫 財政部 稅務 入口 網 1239 號 問答 原始碼 在 GitHub 綜合所得稅 試算 先 了解 單一 申報 下 的 累進稅 率 邏輯 股利 所得稅 選擇 股利 併入 還是 分離 會 影響 這裡 的 其他 所得 美國 婚姻 稅 Marriage Tax 同樣 的 雙 薪 家庭 級 距 問題 美國 稅制 版本