1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ExcelのVLOOKUP地獄と参照データの陳腐化や紛失

Last updated at Posted at 2025-06-07

Excelをデータベースとして活用する際の課題と解決策

僕自身、業務の中でExcelをデータ管理ツールとして利用しています。しかし、関数の煩雑さデータの陳腐化アクセス権限の管理の難しさ などの課題を日々実感しています。そこで、基幹システム(ERP)であるOdooを導入し、段階的に移行を進めています

1. Excel活用の限界

Excelは手軽なツールですが、業務が拡大するにつれて、以下の問題が顕著になっています。
関数が複雑化し、管理が困難になっています
データ更新に手間がかかっています
セキュリティ管理が難しく、誤操作のリスクが高まっています

このままでは業務の効率が悪くなるため、根本的な改善策を検討し、Odooの活用を進めています。


2. VLOOKUP関数の課題と解決策

基幹システム(Odoo)を活用し、データの一元管理を進めています
ExcelのVLOOKUP関数は列の追加・変更に弱く、関数の再設定が頻繁に発生しています。そこで、Odooのデータベースを利用し、検索機能を強化することで、Excel側の関数依存を減らし、管理の負担を軽減しています。


3. 参照データの陳腐化と解決策

Odooのリアルタイム更新機能を活用し、最新データを保持しています
Excelでは、複数のファイルを手動更新していたため、古いデータが残りやすく、誤った情報を参照するリスクが発生していました。Odooを導入することで、リアルタイムでデータを管理でき、常に最新情報を利用できるようになっています。


4. セキュリティ管理の課題と解決策

Odooのアクセス管理機能を利用し、権限設定を強化しています
Excelでは、誰でもデータにアクセスできるため、誤操作や不正な編集が発生しやすい問題がありました。Odooでは、ユーザーごとに閲覧・編集の権限を設定できるため、業務データの安全性を向上させています。


5. Odoo導入の決断

Excelの限界を感じ、すぐに完全移行するのではなく、段階的なOdoo導入 を進めています。

まずはマスターデータ(顧客・商品)をOdooに統合しています
ExcelのVBAを活用し、必要なデータをOdooから取得しています
業務の負担を減らしながら、Odooの機能を拡張しています

例えば、顧客データをOdooで管理することで、Excel側では手動更新の手間が省かれ、データの正確性が向上しています。

ERPって難しい
ERPは、営業支援、販売管理、在庫管理、会計システムと多くの業務フローに対応しています。そのため、マスターモデル(リソースモデル)も高度に抽象化されています。

Odooを例にすると、顧客管理を行うres.partnerモデルは、人だけではなく、会社も管理し、顧客だけでなく、取引先やその関係者、自社の関係者までもが、1つのモデルで抽象化されて管理されています。
また、商品(製品)の場合は、1つのモデルではなく、product.template(抽象的)とproduct.product(具現的)の2つのモデルで商品(製品)を管理しており、商品(製品)のバリエーションを表現できます。

このように、ERPには、標準化されたノウハウが詰め込まれており、とっても難しく感じます。


6. Odooの実際の活用方法

Odooを業務に組み込んだことで、僕が感じているメリットは大きく3つあります。

① 顧客管理の効率化
以前はExcelで顧客リストを更新していましたが、Odooのコンタクト管理(連絡先)を活用することで、変更履歴が記録され、「誰がいつ更新したか」がすぐに分かるようになっています。

② 実績管理の改善
Excelでは、手動で実績データを集計していましたが、Odooでは業務実績が自動で記録され、リアルタイムで確認できるため、集計作業が不要になっています。

③ 商品管理における上代・下代の管理強化
Odooを活用することで、上代(販売価格)と下代(仕入価格)を明確に管理し、価格設定や利益率の分析が容易になっています。特に、価格変更の履歴を残すことで、過去の値動きを把握しやすくなり、適切な価格戦略を立てる ことができるようになっています。

Odooを試す

Odooには、有償版と無償版とがあり、無償版は、コミュニティ・エディションとして、そのソースコードが公開されています。

次の開発ツールを使えば、手元のパソコンでもOdooを試すことができます。

https://github.com/jp-rad/odoo-addons-dev


7. OdooのAPIを利用したExcelのVBA連携

VBAを用いてOdooのAPI経由で顧客データを取得し、Excelに反映することで、顧客の最新データを活用しながら業務を進めることができます。

次のVBA関数は、Odooのres.partnerテーブルから、name項目をキーに指定した任意の項目の値を取得する関数であり、セルの数式として利用できます。

  • セルの数式:=FetchPartnerField(B2, "email")
Option Explicit

Function FetchPartnerField(sName As String, sFieldName As String, Optional oBooleanField As Boolean = False) As Variant
    Dim rs As OdResult
    Dim oc As OdClient
    Dim col As Collection
    Dim dic As Dictionary
    
    ' Odooへ接続
    Set oc = GetAuthConn()
    
    ' 顧客データの検索
    Set col = OdRpc.NewList
    With OdRpc.NewDomain
        .AddArity OdRpc.NewField("name").Eq(sName)  ' nameを検索
        .BuildAndAppend col
    End With
    Set dic = OdRpc.NewDict
    With OdRpc.SetList(dic, "fields")               ' 指定した項目のみ取得
        .Add sFieldName
    End With
    dic.Add "limit", 1                              ' 取得レコードは、1件まで
    Set rs = oc.Model("res.partner").Method("search_read").ExecuteKw(col, dic)
    
    ' データの有無
    If rs.Result.Count = 0 Then
        ' データなし
        GetResPartner = CVErr(Excel.XlCVError.xlErrNA)
    Else
        ' 1件目の項目値を返す
        GetResPartner = rs.Result(1)(sFieldName)
        ' Boolean型の項目ではなく、その項目値が偽の場合、Null値に置き換える
        If Not oBooleanField And VarType(GetResPartner) = vbBoolean Then
            If Not GetResPartner Then
                GetResPartner = CVErr(Excel.XlCVError.xlErrNull)
            End If
        End If
    End If
End Function

このような手法を活用することで、Excelの利便性を保ちつつ、Odooを活用したデータ管理を進めています。

VBA連携
Odooには、External APIが提供されており、XML-RPCJSON-RPCによるリモートアクセスが可能です。

次のツールを使うことで、Excel等のVBAを用い、JSON-RPC経由でOdooのデータにアクセスできます。

https://github.com/jp-rad/odoo-json-rpc-vba


8. まとめ

基幹システムのOdooを導入することで、業務の効率化とデータ管理の最適化を進めています。

Odooでデータを一元管理し、Excel作業の負担を軽減しています
Odooのリアルタイム更新により、最新データを常に活用しています
ERPを活用し、権限管理を強化し、セキュリティを向上させています
スモールスタートで導入し、業務の移行をスムーズに進めています

Odooを基幹システムとして活用し、Excelとの適切なバランスを保ちながら、よりスマートな業務管理を実現しています

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?