temp image

Streamlitで会計・税務業務を劇的に効率化!実践コードで学ぶアプリ開発

Streamlitで会計・税務業務を劇的に効率化!実践コードで学ぶアプリ開発

日々の会計・税務業務においてデータ入力、分類、計算といったルーティン作業に多くの時間を費やしていることと思います。これらの作業は正確性が求められる一方で、非常に時間がかかり、本来集中すべき戦略的な業務から私たちの時間を奪ってしまいます。しかし、Pythonベースの強力なツール「Streamlit」を使えば、これらの課題を解決し、業務を劇的に効率化するカスタムアプリを簡単に開発できます。

Streamlitとは?

Streamlitは、データサイエンティストや開発者がPythonコードだけで美しいウェブアプリケーションを迅速に構築できるオープンソースフレームワークです。フロントエンドの知識がほとんどなくても、数行のコードでインタラクティブなUIを持つアプリを作成できるため、会計・税務の専門家が自身の業務ニーズに合わせてツールを開発するのに最適です。

会計・税務業務におけるStreamlitのメリット

  • データ入力・処理の自動化: クライアントから受け取ったCSVファイルやExcelデータをアップロードし、自動で処理・分類するアプリを構築できます。
  • クライアント向けツールの提供: 簡易的な税金計算ツールや経費入力フォームなどをクライアントに提供し、データ収集の効率化と顧客満足度向上を図れます。
  • 複雑な計算の可視化: 減価償却計算、ローン返済シミュレーション、税金見込み額計算など、複雑な計算プロセスとその結果を分かりやすく可視化できます。
  • レポート生成の効率化: 処理したデータから自動的にレポートを生成し、ダウンロード可能な形式で提供する機能を追加できます。

実践!簡単な経費カテゴリ分類アプリを作ってみよう

ここでは、銀行取引明細などのCSVファイルから経費を自動的にカテゴリ分類するStreamlitアプリを作成する例をご紹介します。このアプリは、特定のキーワードに基づいて取引を分類し、会計処理の初期段階を大幅に効率化します。

必要なもの

Pythonがインストールされている環境と、以下のライブラリが必要です。

pip install streamlit pandas

アプリのコード (app.py)

import streamlit as st
import pandas as pd
import io

st.set_page_config(layout="wide")
st.title('経費カテゴリ自動分類アプリ')
st.write('CSVファイルをアップロードし、取引を自動でカテゴリ分類します。')

# カテゴリ分類ルール
category_rules = {
    'Meals & Entertainment': ['Starbucks', 'Coffee', 'Restaurant', 'Cafe', 'Dine'],
    'Office Supplies': ['Amazon', 'Office Depot', 'Staples', 'Stationery'],
    'Software & Subscriptions': ['Adobe', 'Microsoft', 'Zoom', 'Subscription', 'Software'],
    'Travel': ['Airline', 'Hotel', 'Uber', 'Taxi', 'Travel'],
    'Utilities': ['Electric', 'Gas', 'Water', 'Utility', 'Internet'],
    'Rent': ['Rent', 'Lease'],
    'Professional Fees': ['Legal', 'Consulting', 'CPA', 'Bookkeeping'],
    'Bank Fees': ['Bank Fee', 'Service Charge'],
    'Miscellaneous': [] # どのルールにも当てはまらない場合
}

def categorize_transaction(description):
    description_lower = str(description).lower()
    for category, keywords in category_rules.items():
        for keyword in keywords:
            if keyword.lower() in description_lower:
                return category
    return 'Miscellaneous'

uploaded_file = st.file_uploader("CSVファイルをアップロードしてください", type=["csv"])

if uploaded_file is not None:
    # ファイルを読み込み
    df = pd.read_csv(uploaded_file)

    st.subheader('元のデータ')
    st.dataframe(df)

    if 'Description' in df.columns:
        # 'Description'カラムが存在する場合のみ処理
        df['Category'] = df['Description'].apply(categorize_transaction)

        st.subheader('カテゴリ分類後のデータ')
        st.dataframe(df)

        # 分類済みデータをCSVとしてダウンロード
        csv_buffer = io.StringIO()
        df.to_csv(csv_buffer, index=False)
        st.download_button(
            label="分類済みデータをダウンロード (CSV)",
            data=csv_buffer.getvalue(),
            file_name="categorized_expenses.csv",
            mime="text/csv"
        )
    else:
        st.error("CSVファイルに'Description'カラムが見つかりませんでした。")

アプリの実行方法

上記のコードをapp.pyという名前で保存し、ターミナルまたはコマンドプロンプトで以下のコマンドを実行します。

streamlit run app.py

これにより、ウェブブラウザでアプリが自動的に開きます。CSVファイルをアップロードして、分類結果を確認してみてください。

まとめ

Streamlitは、Pythonの知識を活かして、会計・税務の専門家が直面する多くの課題を解決するための強力なツールです。この簡単な経費分類アプリの例は、Streamlitの可能性のほんの一部に過ぎません。ぜひ、ご自身の業務で時間を要している作業を特定し、Streamlitを使って効率化するアプリ開発に挑戦してみてください。あなたの業務がよりスマートに、より生産的になることを願っています。

#Streamlit #Python #会計 #税務 #業務効率化