見出し画像

【Tech Blog】マスタデータの運用に Google スプレッドシートをオススメしたい 5 つの理由

前回は、マスタデータの段階的なサーバ管理方法についてという記事で、マスタデータのサーバーサイドにおける管理方法について、紹介しました。

開発のプロジェクトによっては、前回紹介したように定数で管理をしたり、テキストベースのファイルとして管理したり、DB で管理したりと様々です。前回紹介した管理方法の他にも、Google スプレッドシートをつかってマスタデータ管理する方法もあります。今回は、マスタデータの中身について手軽に管理できる Google スプレッドシートの利用メリットについて紹介できればと思います。

Google スプレッドシートをマスタデータの管理用のツールとして採用した理由は、大きく5つあります。

  1. クラウド上にデータがあるのでファイルへのアクセスがしやすく、データの編集履歴を残せる

  2. 複数人で同時編集をおこなうことが可能

  3. Google スプレッドシートの機能を活用したデータ入力の簡素化を図ることができる

  4. ファイルの権限を設定

  5. Google Apps Scriptを使用して様々な処理を行うことができる


1.データの履歴を残せる

Google スプレッドシートは「誰が」「いつ」「どのように」編集したかのログが全て残っています。
変更履歴を開いて、変更したタイミングの履歴を選択すれば、変更箇所に色がついて、具体的に「誰が」「いつ」「どのように」変更したのかわかります。



これは、「いつ」データが間違って入稿されたかが大体わかる場合に有効ですが、いつ入稿されたデータかが分からず、間違っているデータのみがわかっている場合は、下記のように「セルごとの履歴」も簡単に参照することによってできるので、データの変更箇所から原因となる変更の時刻を割り出すことも可能です。



DB や CSV で管理してもそれぞれのバージョン管理を行っていれば、履歴を除くことはできますが、直感的に確認ができるという点で、非エンジニアも履歴の確認がしやすく、確定しした履歴データには名前を付けることも可能です。


2.複数人で同時編集が可能

マスタデータの編集作業で、よくぶつかる問題が編集中のファイルの競合です。

例えば、Excelでマスタデータを編集しているプロジェクトがあったとします。
同じ Excel ファイル内に、A さんが担当の Item マスタと B さんが担当の mission マスタが合った場合に、A さんの作業が終わるまで B さんが作業をすることができません。
A さんの作業が完了するまでに B さんが誤って作業をしてしまった場合に、ファイルが競合し、行った変更を取り消す必要が出てきてしまう可能性があります。


(こんな感じで同じExcelに複数のマスタが乗っているケースが少なくない。)

 
その点、Google スプレッドシートはクラウド上にあり、複数人による同時編集が可能なので、競合せずに作業をすることができ、作業待ちや競合の影響で行った変更を破棄する、といった無駄を省くことができます。


3.Google スプレッドシートの機能を活用したデータ入力の簡素化

Excel はマスタデータの入力ツールとしていまだに使われることが多くありますが、その理由として、さまざまな関数や機能の利用における、入力の効率化があげられます。

Google スプレッドシートはExcel同様に様々な関数を使用することができるので、Excel のように入力の効率化を図ることも可能です。
例えば、データの自動入力。
実際に入力したいデータは数値だが、プランナーが直感的に入力できるようにプルダウンにしたい!などの場合は、

1.プルダウンで選択できるようにデータの入力制限を行う
2.選択して入力したいデータのテーブルを参照しVLOOKUP で検索する
3.ARRAYFOMULA で関数入力を自動化

とすることで、直感的にわかりやすい UI でデータの入力を容易に行うことができます。


(データの入力制限を設ける)

参照用のデータテーブルを用意したら、VLOOKUP 関数でプルダウンの入力を元に数値を自動設定する、といったような関数を書くこともできます。

=VLOOKUP(D2,'[参照用データ]'!A1:B7,2,FALSE)

この関数を ARRAYFOMULA で設定することで、すべての関数に入力する手間も省くことができます。


=ARRAYFORMULA(VLOOKUP(D2:D,'[参照用データ]'!$A$1:$B$7,2,FALSE))

また、値にエラーが出た場合の関数「 IFERROR 」や、異常値の入力を検知してセルの色を変更するみたいなものは「条件付き書式」など、様々な機能を使って Excel 管理のように便利に使うことができます。


※この例は type 列が VLOOKUP による自動入力で、エラー箇所は赤くハイライトされている。


4.ファイルのアクセス権限を設定できる

マスタデータを編集できるメンバーは、できる限り制限したほうがよいです。
GoogleDrive 上のファイルはすべて、アクセス権限を設定することができるので、ファイルの編集者を追加したり、閲覧のみ可能なユーザーを追加したりできます。


このあたりの設定が簡単にできるので、管理ツールにおける権限管理の実装などを省くことができます。


5.Google Apps Script を使用して様々な処理を行うことができる

Google スプレッドシートは Google Apps Script(以下、GAS)を利用することができます。
GAS では、シート上のデータにアクセスするだけではなく、データの加工や解析、WebアプリとしてGASを公開し、クライアントアプリからアクセスしてマスタデータをクライアントアプリにダウンロードさせる、なんてことも可能です。

GAS は javascript での記述が可能なので、プログラミングに必要な情報にもすぐにアクセス可能ですし、ライブラリの導入もできるのであまり不便を感じることなく作業をすることができます。

GAS を使用したデータの加工や、アプリ開発との連携などについては、また別の機会で紹介できたらと思います。


■ まとめ

Google スプレッドシート
におけるマスタデータ制作は、構築の手軽さや運用の容易さから環境構築のコストを削りたい GameJAM のようなイベントやカジュアルゲーム開発などでは大いに役立つと思いますし、GAS を公開すれば継続的インテグレーションに組み込むことも可能です。
無限に広がる可能性を秘めた Google スプレッドシートをぜひこの機会に採用してみてはいかがでしょうか?


執筆:山路 裕也|株式会社セガ エックスディー

セガ エックスディーで、ゲーム開発で培った技術やノウハウを活かして、サービス開発や支援を行っています。


■ SEGA XD HP:https://segaxd.co.jp/
■ SEGA XD 公式 X(旧Twitter):https://twitter.com/SEGAXD_PR
■ SEGA XD 公式 Facebook:https://www.facebook.com/segaxd.fb/
■ CX School 公式 Youtube:https://www.youtube.com/@cxschool
■ SEGA XD 公式 TikTok:https://www.tiktok.com/@segaxd_official