Googleスプレッドシートに切り替えたいけど、外部の人からExcelで届いたり、外部の人へはExcelで送らなければならないケースも良くあります。GoogleスプレッドシートとExcelの間には互換性があるため、スプレッドシートをExcelファイルに変換したり、Excelファイルをスプレッドシートで編集したりすることができると言われています。
「ほんとうに、GoogleスプレッドシートでExcelは読めるの?」
「ほんとうに、スプレッドシートをExcelに変換できるの?」
実際にスプレッドシートでExcelを編集したり、スプレッドシートをExcelに変換したりすることができるとしても、実用に耐えられる互換なのか?違いを編集して対応できるものなのか?不安を抱いている方も多いのではないでしょうか。そこで、今回はGoogleスプレッドシートとExcelを便利に使い分けられるよう、Googleスプレッドシート⇔Excelファイルの変換方法や互換性について実際のフォームを変換して詳しくご紹介します。
テレワークが常態化した現在、ファイル共有や複数人での同時編集、そして何より無償ということを考えると、Googleスプレッドシートの活用は避けて通れません。基本はGoogleスプレッドシートを活用しますが、外部の方とのお付き合いではまだExcelを止めることはできませんので、その違いを把握して業務の特性に合わせて使い分けるのが良いでしょう。
Excelとの互換性
Googleが提供するクラウドベースのGoogleスプレッドシートは、MicrosoftExcelと一定レベルの互換性を備えています。2つのアプリケーションには類似点がありますが、機能、関数、書式設定にいくつかの違いがあり、注意が必要です。GoogleスプレッドシートのExcel互換性に関して重要なポイントをいくつかご紹介します。
ファイル形式
GoogleスプレッドシートはExcelファイルのインポートとエクスポートの両方をサポートしています。Excel(.xls、.xlsx)をGoogleドライブにアップロードし、Googleスプレッドシートで開くことができます。同様に、スプレッドシートをExcelファイルとしてダウンロードすることができます。
基本的な書式設定
フォントスタイル、セルの背景色、枠線、数値の書式設定などのほとんどの基本的な書式設定機能は、GoogleスプレッドシートとExcel との間で互換性があります。その為、どちらかのシートにファイルを移行させても問題なく編集することができます。
但し、移行する場合の注意すべき点がレイアウト崩れです。特に下記で挙げる4点については崩れやすいので変換後はしっかりと確認し、必要に応じて修正を加える様にして下さい。
- フォントの種類
フォントやグラフは、変換先に対応する形式がないと計算式が消えたり表示が変わったりします。 - 罫線の太さ
- 行・列の幅
- グラフや画像
スプレッドシートはExcelと比較すると画像やグラフの機能が豊富ではありません。そのため、Excel形式へ置換すると表示が崩れる場合があります。
数式と関数互換
Googleスプレッドシートは、Excelと同様の幅広い数式や関数をサポートしています。SUM、AVERAGE、IF、VLOOKUPなどの最も一般的に使用される関数は、両方のアプリケーションで使用できます。ただし、特定の複雑な関数や Excel固有の数式は完全な互換性がない場合がありGoogleスプレッドシートでファイルを開く時に調整が必要になる場合があります。例えば、GoogleスプレッドシートにはIMAGE関数という画像のURLからセルに画像を表示させる関数が用意されていますがExcelには存在しない為、記載されているセルは表示がエラーとなります。
マクロと VBA
Googleスプレッドシートは Excelマクロや VBA(VisualBasic for Applications)をサポートしていません。マクロを含むExcelファイルがある場合、それらはGoogleスプレッドシートでは機能しません。ただし、Googleスプレッドシートには Google Apps Script と呼ばれる独自のスクリプト言語があり、タスクを自動化したり、カスタム関数を作成したりできます。
コラボレーションと共有
Googleスプレッドシートは、リアルタイムでコラボレーションし、他のユーザーと簡単に共有できるように設計されています。複数のユーザーが同時にスプレッドシートを編集し、セルにコメントし、変更を追跡できます。一方Excelファイルは通常、手動で共有する必要があり、同時コラボレーションは Googleスプレッドシートほどシームレスではありません。
留意:「共有の方法」につきましては、別ブログ「Googleドライブの使い方」を参照願います。
GoogleスプレッドシートとExcelとは、2つのアプリケーションの機能の違いにより高度な機能、マクロ、または複雑な数式に不一致や相違が発生する場合があります。2つのアプリケーション間でインポートまたはエクスポートした後、すべてが期待どおりに動作することを確認するために、ファイルを確認してテストすることを常にお勧めします。
Excelをスプレッドシートに変換する方法
ExcelとGoogleスプレッドシートは一定の互換性があり、ExcelファイルをGoogleドライブにアップロードして直接編集することができます。アップロードしたExcelファイルはスプレッドシートに変換して保存したり、スプレッドシートをExcel形式に変換してダウンロードすることもできます。
ここでは実務で運用していたExcelファイル(xlsx形式)をGoogleドライブにアップロードして、実際に編集する例をご紹介します。
[ スプレッドシートに変換するExcelファイル ]
有給休暇管理表は、毎月、有給を消化した日付を入力するだけで、有給残高、時効消滅日数などを自動計算して確実な有休管理を行います。2019年4月からの有給休暇の取得義務づけに伴い開発したもので、2019年より実務運用しているExcelの管理表となります
※今回の変換するExcelファイルは、以下の「VBAを削除したExcelシート(xlsx形式)」です。

[ 変換されたスプレッドシート ]

エクセルのファイルをスプレッドシートに変換するには、2通りの方法があります。
「Googleドライブ上にエクセルファイルをアップロードしてスプレッドシート形式で保存する」方法と、「新規作成したスプレッドシートにエクセルのデータをインポートする」方法です。
スプレッドシート形式で保存する方法
ファイルのアップロード
ファイルのアップロードには、「ファイルのアップロード」をクリックしてアップロードする方法の他、ドラッグ&ドロップでアップロードすることもできます。
「ファイルのアップロード」でアップロード
「新規」をクリック
Googleドライブを表示したら、「新規」をクリックします。

「ファイルのアップロード」をクリック
ファイルのアップロードをクリックします。

Excelファイルの選択
アップロードしたいExcelファイル(xlsx形式)を選択して「開く」をクリックします。

ExcelファイルがGoogleドライブにアップロードされました。

「ドラッグ&ドロップ」でアップロード
Excelファイルの準備
アップロードしたいExcelファイル(xlsx形式)を準備します。

Excelファイルをドラッグ&ドロップ

ExcelファイルがGoogleドライブにアップロードされました。

スプレッドシート形式で保存
xlsx形式のExcelファイルであれば、アップロードしたExcelファイルはGoogleドライブでそのまま開いて編集(excelは不要)することができますが、一部互換性のない機能もある為、スプレッドシートファイルに変換します。
ファイルを開く

「Googleスプレッドシートとして保存」をクリック

注意:
xls形式の古いExcelファイルの場合、編集すると「XLSX形式に変換してください」とメッセージが表示されますので変換して下さい。
スプレッドシート形式ファイルの完成
新しいタブが開いて、そこに同じ内容のGoogleスプレッドシートのファイルが表示されます。Excelの拡張子が消えて、スプレッドシート形式のファイルが出来ました。

Googleドライブには元のExcelファイル(拡張子:xlsx)とは別に、スプレッドシート形式のファイル(拡張子なし)が保存されます。
これでExcelファイルがスプレッドシートに変換されました。

エクセルのデータをインポートする方法
新規作成したスプレッドシートにエクセルのデータをインポートする方法です。
新しいスプレッドシートの作成
「新規」をクリック

「空白のスプレッドシート」をクリック

エクセルのインポート
インポートをクリック
「ファイル」タブから「インポート」をクリックします。

「アップロード」タブの選択

Excelファイルのドラッグ&ドロップ

「データをインポート」をクリック

これでExcelファイルがスプレッドシートに変換されました。
スプレッドシートの確認
Googleドライブには元のExcelファイル(拡張子:xlsx)とは別に、スプレッドシート形式のファイル(拡張子なし)が保存されます。

留意:
インポートの場合は、アップロードとは異なり、先にスプレッドシートを作成して、そのシートにExcelのデータをインポートする為、新しいスプレッドシートを作成する際にファイル名を変更しませんでしたので、デフォルトの「無題のスプレッドシート」となっています。
スプレッドシートの互換性の確認
変換したスプレッドシートはレイアウトの崩れが発生しています。GoogleスプレッドシートとExcel との間では一定の互換性がありますが、アプリケーションの機能の違いにより一部相違が発生する場合があります。どのような違いが発生するかを段階を追って検証します。
現象(スプレッドシートのレイアウトが崩れる)
Excelに設定している関数はほとんど問題なく動作しますが、レイアウトの崩れが発生しています。

原因(スプレッドシートのレイアウトが崩れる)
GoogleスプレッドシートとExcelとは、アプリケーションの機能の違いにより高度な機能、マクロ、または複雑な数式に不一致や相違が発生する場合があります。
- シートの保護は無効となっている
Excelではパスワードでの保護機能がありますがスプレッドシートにはパスワードでの保護機能はありません。 - 行・列の幅が変わっている
- 対角線が消えている
Excelでは書式設定で対角線を引くことができましたが、スプレッドシートでは図形描画で図形を貼付するかSPARKLINE関数を用います。但し、セルの中に数値や関数が格納されている場合は、関数を入力できません。
対応(スプレッドシートのレイアウト崩れ)
ここでは全ての違いを網羅することはできません。例えばグラフや画像等は扱っていませんが、Excelと比較すると画像やグラフの機能が豊富ではありませんのでExcel形式へ置換すると表示が崩れる場合があります。2つのアプリケーション間でインポートまたはエクスポートした後、すべてが期待どおりに動作することを確認するために、ファイルを確認してテストする様にお願いします。
スプレッドシートのレイアウト崩れの編集
シートの編集
Excelから変換したスプレッドシートはレイアウトの崩れが発生していますので、レイアウトの編集をします。
ファイルを開く

シートの編集
行・列幅の編集
対象の行または列を選択して、右クリックから「行または列・・・のサイズを変更」を選択。表示された画面でサイズを入力します。

文字サイズの変更

対角線の挿入
セルの中に関数を設定していますので、SPARKLINK関数を挿入すると既存の関数が消えてしまいますので関数の挿入はできません。これを同様に斜線を挿入するのであれば、斜線を図形描画してセルに貼付するしかありません。対角線を挿入している理由は、単に利用者には必要のない情報を隠す為だけです。そこで注意喚起すれば良いことだけなので斜線は引かずに色付けして表示することとします。

日付の表示形式
Excelでは令和・平成等の和暦表示に切り替えが可能ですが、Googleスプレッドシートの表示形式には、日付の和暦表示がありません。従って西暦の日付から和暦に変換するには、関数を作らなければなりません。これが、結構面倒ですので、ここでは西暦表示のままとします。
日付をカレンダーから入力する方法
Excelでは、VBAでポップアップカレンダーを組み込んで「日付のカレンダーからの入力」を可能にしていましたがVBAは動かない為、スプレッドシートではGas(GoogleAppsScript)で組み直さなければなりません。そこでオリジナルのカレンダーではありませんが「データの入力規則」機能を利用することで、日付のカレンダー入力が可能となりますので、これを導入します。
「データの入力規則」をクリック
日付のセルを選択して「データ」タブから「データの入力規則」を選択します。

「+ルールを追加」をクリック

「有効な日付」をクリック
「条件」のプルダウンメニューから「有効な日付」を選択します。

「完了」をクリック

カレンダー入力の操作
日付を入力したいセルでダブルクリックすると、カレンダーが表示され、カレンダーを選択して日付を入力できます。

シートの編集の完了
レイアウトの編集が済みましたら、シートを複写して内容を削除して「原紙」を作成しました。運用ではこの「原紙」を複写して新しい社員の有給休暇管理表を作成して頂きます。

シートの保護
Excelではパスワードによるシートの保護を行っていましたが、パスワードによる保護機能はスプレッドシートにはありませんので、シートやセルを指定するように保護設定をします。ここでは、シート全体を保護したうえで、一部のセルだけ入力できるように設定します。
留意:
シート保護の詳細については、別ブログ「【完全解説】googleスプレッドシートの使い方(シートの保護・解除)」を参照願います。
「シートと範囲を保護」をクリック
スプレッドシートを開き、「データ」タブから「シートと範囲を保護」をクリックします。

「+シート/範囲を追加」をクリック
画面右にサイドメニューから「+シート/範囲を追加」をクリックします。

「シート」タブをクリック

田の字マークのクリック
「特定のセルを除く」に✔を入れて、「田の字マーク(データ範囲を選択)」をクリックします。

セル範囲の選択
「田の字のマーク(データ範囲を選択)」をクリックして、希望するセルの範囲をドラッグ選択して「OK」を押します。有給休暇管理表の「原紙」のシートは、シート全体を保護して入力できない設定ですが、紫枠で囲ったセルだけ(特定のセル)は入力できる様にします。
- ①A3~I3:社員番号、氏名、入社日
- ②O3:週労働日数
- ③A7~A94:有給発生日(基準日)
- ④J7~K94:全休/半休
- ⑤Q7~AJ94:時季(年次有給休暇を取得した日)

「完了」をクリック
「権限を設定」をクリックすると、「範囲の編集権限」ウィンドウが表示されますので、データ保護に対する細かい指定がなければ「完了」をクリックします。

シート保護の完了
✕でシート保護の設定画面を閉じます。

シート保護の確認
共有しているgungiitopさんのGoogleドライブで「有給休暇管理表V3.0_20230601」を開き、確認すると、特定のセルを除いて触れないことが確認できます。
注意:
実際の運用ではログインできない為、gungiitopさんの「有給休暇管理表V3.0_20230601」を確認することはできません。

gungiitopさんの「有給休暇管理表V3.0_20230601」の「データ」から「シートと範囲を保護」をクリックして画面右に表示されます「保護されているシートと範囲」を確認します。原紙は「表示専用」ですが、「5個の範囲を除く」(編集できる)となっています。

スプレッドシートをExcelに変換する方法
Excelをスプレッドシートに変換するのとは逆に、スプレッドシートファイルをExcelファイルとしてダウンロードすることができます。
スプレッドシートを開く
スプレッドシート形式で編集した「有給休暇管理表V3.0_20230601」を開きます

Excelファイルとしてダウンロード
「MicrosoftExcel(xlsx)」のクリック
「ファイル」タブから「ダウンロード」を選択して、「MicrosoftExcel(xlsx)」をクリックします。

ダウンロード

ダウンロードしたExcelファイルの確認

まとめ
まず、元のExcelシートからスプレッドシートに変換して、そのスプレッドシートをExcelファイルとしてダウンロードした様子をご覧下さい。

Excelから変換してスプレッドシートを作成する場合は、レイアウトの崩れが最も注意すべき点ですがレイアウトの崩れさえ対応すれば、関数が全て動作しましたので、他は対応できないことはありませんでした。外部の方との付き合いからExcelを止めることができないとしても、その違いを把握して使い分けることは十分に可能です。
Excelから変換してスプレッドシートを作成するのではなく、スプレッドシートを直接作成する場合は、以下の点のみ把握しておけば、スムーズにスプレッドシートを作成できます。
- Excelマクロや VBAは使えません。
Excelマクロや VBAはサポートしていませんので GAS(google Apps Script)と呼ばれるスクリプト言語で開発することが必要です。 - 日付の表示形式には、和暦表示がありません。
西暦の日付から和暦に変換するには、関数を作らなければなりませんので、和暦は使用しないのが良いでしょう。 - ラジオボタンの設定はありません。
チェックボックスを使ってGASで作る必要があります。
今回は、どこの組織でも管理している「有給休暇管理表」をスプレッドシートに変換してみましたが、共有が必要な会議資料、販売ツールや従業員等に配布して記入や回答を頂くようなシート、例えば従業員満足度調査やアンケート等は、あきらかにスプレッドシートを活用する方が便利です。また、社内で全員がPCを保有していることは稀です。Excelを必要とせず、インターネットさえ使えれば、パソコン、タブレット、スマートフォンを利用してどこでも作業をすることができるスプレッドシートは、リモートワークが定着する中、業務に不可欠なツールとなっています。