ブログ

スクショの表を Excel や Google スプレッドシートに取り込む方法

執筆 InSnap · 公開 · OCR, 表, Excel, Google スプレッドシート, スクリーンショット

スクショの表を Excel や Google スプレッドシートに取り込む方法

スクリーンショットの表は文字としては取り出せても、列がなかなか元どおりになりません。セルを正しく復元する手順と、貼り付けたあとに数字を検算する方法を紹介します。

請求書や料金ページ、ダッシュボードの表を撮ったスクリーンショットは、データではなくピクセルです。並べ替えも合計もできませんし、そのまま表計算ソフトに貼り付けても列がそろいません。

文字認識を使えば、中の言葉は取り出せます。しかしそれだけで表の格子が組み上がるわけではありません。認識結果は行単位のテキストとして返ってきます。表の 1 行は、たまたま空白で区切られた複数のセルを含む 1 行にすぎません。そこから先は、スクリーンショットではなく表計算ソフトの側で行う少しばかりの後片付けです。

認識で残るもの、残らないもの

この 2 点を押さえておけば、残りの手順は素直に理解できます。

  • 文字は残ります。 表のスクリーンショットに文字認識をかけると、言葉も数字も記号も読み順で出てきます。
  • 格子は残りません。 画面上の列の境目は空白のすき間でしかなく、認識エンジンにはそのすき間が「新しい列」なのか「新しい語句」なのか「字下げ」なのか分かりません。連続する空白はまとめられがちなので、列は 1 本の長い行として出てきます。

だからこそ、OCR の結果をそのまま表計算ソフトに貼ると、すべてが詰め込まれた 1 列になってしまいます。データはそこにあります。構造だけを一度組み直せばよいのです。

なお、InSnap の認識が得意なのは中国語(簡体字・繁体字)と英語、そしてドイツ語・フランス語・スペイン語・ポルトガル語・イタリア語などのラテン文字の言語です。日本語は漢字ならかなり読めますが、かなは誤認識しやすく、韓国語とロシア語も確実には読めません。表がこうした言語で書かれている場合は、貼り付けたあとの見直しをいつもより丁寧にしてください。

スクリーンショットに文字認識をかける

ステップ 1:認識できる大きさで撮る

表の文字はふつう小さめです。それが表をコンパクトにしている理由でもあります。小さな文字は認識ミスの最大の原因でもあるので、切り抜く前に余裕をもって撮りましょう。

画面上で各行が数ミリ以上しっかりした高さになるように撮り、認識前に画像を縮小しないようにします。表が幅の狭いものなら、先にページを拡大して、大きくなった状態を撮ります。小さく撮ってから拡大するのでは情報は戻りません。

InSnap の認識は選んだピクセルに対して実行されます。表のまわりをドラッグで囲み、キャプチャのツールバーで OCR をクリックすると、認識された行が選択範囲の横のパネルに並びます。だいたい 1 行が表の 1 行に対応します。1 つのセルだけ選び直したいときは、スクリーンショットの上で文字を文字単位でドラッグして選ぶこともできます。

同じ行を 5 つの文字サイズで撮り、それぞれ認識した結果

ステップ 2:テキストを表計算ソフトに取り込む

パネルから認識されたテキストをコピーし、表計算ソフトに貼り付けます。Excel も Google スプレッドシートも、改行を含むプレーンテキストを受け取ると 1 列に下向きに流し込みます。表の 1 行が表計算の 1 行として並ぶ、これがここで欲しい結果です。

Google スプレッドシートは、タブを含むテキストを貼り付けるときに インポート(Import)のダイアログを出すことがあります。タブが列なのか判断できないためです。Mac なら Command-Shift-V、Windows なら Ctrl-Shift-V で書式なしで貼り付けるとこのダイアログを飛ばせます。Excel の同じショートカット(値の貼り付け)でも同じです。

すべての行が 1 列に入ってしまっても想定どおりです。次のステップで直します。

ステップ 3:列を分割する

認識された行は、たいてい連続する空白でセルを区切っています。運がよければタブで区切られていることもあります。どちらの表計算ソフトでも、それを使って分割できます。

Excel。 列を選択し、データ › 区切り位置 を選び、区切り記号付き を選んでから スペース(タブ区切りで出てきたなら タブ)にチェックを入れて完了します。確定する前にプレビューを確認してください。セルの中の空白(「New York」「Acme Inc.」など)も区切られてしまうので、区切り文字をいくつか追加するか、該当のセルを手で直す必要があるかもしれません。

Google スプレッドシート。 列を選択し、データ › テキストを列に分割 を選んで、区切り文字を スペース(指定したいなら カスタム)にします。その場で分割されます。

Excel 自身の方法。 最近のバージョンの Excel には データ › 画像から があり、画像ファイルに対して独自の認識を実行して直接テーブルを作ります。保存したスクリーンショットで試す価値はあります。表に罫線が見えていれば、後片付けがずっと少ない正式なテーブルになることが多いです。使う前にご自身のバージョンを確認してください。

ステップ 4:数字を検算する

後片付けは飛ばされがちな手順ですが、いちばん重要な手順でもあります。認識は静かに失敗するからです。エラーではなく、いちばんそれらしい推測を返します。

  • 1 桁ずつ突き合わせる。 金額、日付、ID は、画面上では間違いが見えず、下流で致命的になる場所です。いちばん大きい値を 1 行ずつ抜き取り確認します。
  • 行数が合っているか確認する。 スクリーンショットに 12 行の商品があって貼り付けたテキストが 11 行なら、2 行が 1 行にまとめられています。
  • 空のセルを確認する。 元の画像で空のセルは、認識されたテキストから丸ごと消えることがよくあります。するとそれ以降の値が 1 列ずつ左にずれます。空のセルは、表計算をこっそり間違ったものにする最短の道です。
  • 合計を見る。 合計の行がある表なら、表計算ソフトでその列を合計して比べます。合わなければ、少なくとも 1 つの数字が間違っています。

お金が絡むものなら、この確認に 1 分かければ午後まるごとが救えます。

知っておきたい代替手段

数字が 1 つだけ欲しいなら、表計算ソフトは不要です。スクリーンショット上でそのセルのテキストだけを選んでコピーしてください。すでに手元にある PDF の表なら、PDF から直接テキストを取り出しましょう。PDF はそもそも認識が要りませんし、出力は正確です。

印刷された表を撮った写真、たとえばホワイトボードやレシートでも同じ手順が使えますが、認識エンジンは湾曲した紙やムラのある光には弱くなります。まっすぐ正面から、画面いっぱいに撮り、多めのセルを直すつもりでいてください。

よくある質問

OCR のテキストを Excel に貼ると、なぜ全部 1 列に入ってしまうのですか?

認識結果がセルではなく行単位のテキストだからです。列の間のすき間は画面上の空白でしかなく、認識エンジンにはそれを区切りとして確実に残す手段がありません。あとから「区切り位置」や「テキストを列に分割」で格子を組み直してください。

InSnap は表を認識して表計算ファイルとして書き出せますか?

いいえ。InSnap の認識が返すのは選択できるテキストで、どこへでもコピーできます。列を組み直す作業は Excel や Google スプレッドシートで行い、そこで数字の検算もできます。

数字や記号も認識できますか?

ふつうの UI フォントの数字なら、おおむね認識できます。ただし重要な値はすべて確認する価値があります。間違った数字は正しい数字と見分けがつかないからです。通貨記号や桁区切りは多くの場合残りますが、誤読されやすいものの筆頭でもあるので、合計を比べてください。

認識は端末内で行われますか?

はい、InSnap では端末内で行われます。スクリーンショットと認識されたテキストはお使いの端末に残り、何もアップロードされません。認識は macOS と Windows の無料版に含まれています。

次のスクリーンショットは、ホットキーひとつで。

macOS 14.4 以降(Apple Silicon / Intel)· Windows 10 以降(64 ビット)