課題解決 事例紹介

Excel365 新関数活用事例
LAMBDA関数の活用で、取引先毎に異なる注文書様式を利用者自身で追加可能に

背景 取引先毎に異なる様式の注文書を作成する必要があるが、取引先が頻繁に入れ替わる為、使用する様式の追加・削除が激しい
担当者はExcelに不慣れで複雑な関数を自分で設定することが難しく、様式が変わる度に作業代行を発注するのはコスト的に厳しい
方針 使用する関数のパターンは決まっている為、極限までシンプルにした独自関数をLAMBDA関数で用意する
LAMBDA関数が設定されたひな形ファイルをベースに、各取引先別の様式ひな型を展開する
効果 オリジナルの関数を使用する事で、担当者が自分で新しい様式を追加したり、体裁の変更に対応できるようになった
作業代行であれば1様式5万~でのコストがかかるが、自社内で対応できることでコストが抑えられた

システム化の最後の難関となったランニングコスト問題

M社の業務内容

M社は国内メーカーと海外の販売店をつなぐ代理店で、海外からの注文を取りまとめて国内のメーカーに発注しています。

取り扱う商品カテゴリに応じて発注するメーカーが異なる為、取引先の数が膨大です。

取引先は各々の発注書の様式があり、たまに見た目が変わったりすることから、Excelで雛形を用意して対応しています。月末で締めて取引先毎に集計し、取引先別の注文書を作成のに毎月残業をしながら何とか対応している状況でした。

そこで、受注データの取りまとめと注文書の作成をシステム化出来ないか?と弊社にご相談いただきました。

海外の販売店には自社の注文書で発注してもらうので、受注情報のとりまとめは容易にシステム化できます。

最後の課題、発注書作成

しかし、発注書の作成をどうするのが最適か?という課題が最後まで残りました。

何十社もの取引先が存在する上に取引先の入れ替わりも激しく、注文書の様式は常に何十パターンも存在します。

取引先の追加があれば新しい様式が増えますが、そのたびに様式の追加をシステムに組み込むのは現実的ではなく、ユーザー自身で対応できるようにする必要があります。

そもそも、コロナ禍でテレワーク主体の今、システムの改修依頼を行おうにも稟議に以前の倍以上の時間がかかっています。

また、1つの様式を追加するのに数万円かかる為、毎年の改修費用が膨大になります。

Excelに不慣れな担当者が、苦戦してした初期案

後から自分で好きなように様式を増やしたいというニーズに対し、私たちは次のような提案をしました。

集約した受注データから、必要なデータを共通シートに出力するまではシステム化を行う。

共通シートと個々の様式を組み合わせたファイルをひな型として、個々の様式は関数を設定して共通シートを参照する。

数式が設定されたファイルをひな型とする事で、システムから受注データを流せば半自動で発注書が完成する。

下図のように、個々のファイルは共通シート+個別様式とする事で、8割程度は自動化される仕組みです。

お客様が自分で新しい様式を作成できる設計。数式等を設定することで対応が可能。

この方針で提案した時、担当者も「関数の設定は不安だけど、やってみます」と前向きでした。

しかしいざ関数を設定しようとすると、商品名を日本語と英語のどちらで表示するかをIF関数で分岐させたVLOOKUP関数が必要であったり、同一商品でも発注した国別で個数を集計するためにSUMIFS関数が必要だったりと、日頃Excelに精通しているわけではない担当者には敷居が高く、苦戦している様子でした。

実際に設定された数式は、例えば次のようなものです。

最終的に複雑な数式の設定が必要となってしまった例
新しい様式が増えるたびに作業代行をすると、稟議の時間も開発費も嵩んでしまい、現実的ではありません。

どうにか解決策はないものか…と考えあぐねていた時、ある新関数が使えそうだなと閃きました。

Excel365で新しく追加されたばかりで私たちもほとんど使ったことがない「LAMBDA関数(ラムダ関数)」の活用です。

複雑な関数を裏で処理するLAMBDA(ラムダ)関数の活用

LAMBDA関数は、簡単に言ってしまうと「自分でオリジナルの関数を作れる」という新関数です。

オリジナルの関数の作成は以前からVBA(マクロ)を使用した「ユーザー定義関数」というものが使えましたが、LAMBDA関数ではVBAは必要ではありません。

とは言え使いこなすにはそれなりに関数の知識が求められる、上級者向けの機能です。

難しい部分はこちらで設計してひな型を用意するので、個々の発注書では新しく私たちが設定した関数を使用して簡単にデータ参照できるようにすれば、担当者が自分でいくらでも様式を追加できるようになるだろう、という方針で提案しサンプルを見てもらいました。

例えばSUMIFS関数で参照していた箇所はこのようになります。

複雑だった数式がシンプルになった例、SUMIFS関数に入っていた長い参照が無くなり簡単になっています

LAMBDA関数を使用して、新しく「Cre_国別SUM 関数」を作成しました。

D8は「商品名」が、E8は「発注した国」のセルです。

担当者は国別の数量合計を表示したいセルにこの関数を入力して、「商品名」のセルと「発注した国」のセルを選択するだけなので、これくらいなら設定できそうだとご納得いただけました。

いくら取引先別で様式が違うと言っても、作成するのは発注書なことに変わりはないので、求められる関数は似たものになります。

そこで共通シートにいくつかのオリジナル関数を設定したひな型を作るところまでを私たちが開発し、そのひな型に個々の取引先の様式を組み合わせた発注書ひな型は担当者にお任せする方針が決まりました。

マクロ無しでも実現できる、業務改善の可能性

当初、担当者だけでは複雑な関数の設定は出来そうにないと行き詰っていた案件ですが、新機能をうまく組み合わせたことで担当者だけで新しい様式に対応できるようになりました。

私たちとしては作業代行を継続的にお願いしていただく方が良かったかと思いますが、自分たちだけで運用できるというのはシステム化で大切なポイントですので、そこを重視しました。

Excelは長く使われているソフトですが、バージョンアップ時に新しい関数が増え続けています。

新しい関数が使える環境かどうかを確認した上で、適切に活用するには経験値が必要です。

お客様の中には「マクロを使わないで何とかできないか?」といったご相談をされる方もいらっしゃいますが、内容によっては今回のようにLAMBDA関数で解決することもあるかもしれません。

私たちにはExcel専門の開発会社として積み重ねた実績とノウハウがあります。

今お抱えのお悩みが、もしかしたら目から鱗の方法で解決するかもしれません。

なにかお困りのことがあれば、お気軽にご相談ください(匿名可)。