【Excel】Excelとデータベースの違い — 他のツールに読み込めない台帳を「1行1件」に直す方法

この記事は約10分で読めます。

Excelの台帳を、ほかのツールに読み込ませようとして取り込めなかったことはありませんか。筆者も同じところで詰まりました。原因は、結合したセル、1行に複数件を詰めた行、見た目のために入れた行でした。

どれも、人が読むには分かりやすい書き方です。ただ、ツールはデータベースと同じ考え方で表を読みます。この記事では、その違いを押さえてから、同じ台帳を「1行1件」に直します。

この記事で分かること

  • Excelの表とデータベースの考え方の違い
  • 結合セル・1行に複数件・見た目のための行が、集計をどう狂わせるか
  • 崩れた台帳を「1行1件」に直す手順
  • ほかのツールに読ませる前に確かめること

直したあとの「集計」シート(NG台帳とOK台帳の4つの集計がそろった状態)

どんな場面で使うか

  • 取引先・備品・受注などの台帳を、Power Query や Power BI で集計したい
  • 業務システムやクラウドのサービスへ移すために、Excelの台帳を取り込む
  • ピボットテーブルを作ると、項目に「(空白)」が出たり、合計が合わなかったりする
  • 配られた台帳を毎月集計していて、そのたびに手で直している

基本説明

Excelとデータベースの違い

Excelは、どのセルに何を書いてもかまいません。データベースは、表の形に決まりがあります。ほかのツールは、Excelの表をデータベースの決まりで読もうとします。

Excelの表(人が見る) データベース(ツールが読む)
1行の意味 自由。タイトル・小計・空白の行も置ける 1行=1件(1レコード)
セルの結合 できる 結合という考え方が無い。各行が自分の値を持つ
1つのセル 「10、5」のように何でも入る 多くの場合、列ごとに数値・日付・文字の型が決まる
空白 区切りや見た目に使える 「値が無い」という意味

ずれる箇所は、この4つの行に集まります。

使うデータ

サンプルファイル(記事末尾)には3枚のシートがあります。

  • 「NG台帳」… 人が見やすいように作った受注台帳。手順はこのシートで進めます
  • 「OK台帳」… 同じ受注8件を、1行1件で入れたもの。答え合わせに使います
  • 「集計」… 2つの台帳を同じ数式で集計し、左右に並べたもの

「NG台帳」シートの元データ(A1:F16)

NG台帳は、A列が受注日、B列が取引先、C列が品目、D列が数量、E列が単価、F列が金額です。OK台帳も同じ列の並びです。

  • 1行目はタイトル(A1:F1を結合)、2行目は空白、3行目が見出し
  • 取引先は、同じ取引先の2行を結合している(B4:B5・B8:B9・B12:B13)
  • 4行目と13行目は、1行に2件を「、」区切りで入れている
  • 6・10・14行目は小計、16行目は合計、7・11・15行目は空白

「集計」シートのB列はNG台帳を、C列はOK台帳を集計しています。B列の数式は次の4つです。

=SUM(NG台帳!F:F)
=SUMIFS(NG台帳!F:F,NG台帳!B:B,"東邦商事")
=SUMIFS(NG台帳!D:D,NG台帳!C:C,"A-100")
=COUNT(NG台帳!F:F)

上から、金額の合計、東邦商事の金額、A-100の数量、金額が入った行数です。C列は、シート名を「OK台帳」にした同じ数式です。

直す前の「集計」シート(B列とC列の値が食い違っている)

B列は 155,400・16,000・6・10、C列は 51,800・22,000・19・8 です。同じ8件なのに、4つとも合いません。

ツールから見ると、何がずれているか

結合セルは、ふつうに結合すると、値が左上のセルにしか入りません。B4 は「東邦商事」ですが、B5 は空です。だから東邦商事の金額は、4行目の 16,000 しか数えられません。Power Query で読み込んだときも、結合の下のセルは null(値なし)になります。タイトル行が上にあると、それが見出しとして読まれ、ほかの列名が「Column2」のようになることもあります。

1行に複数件のセルは、ツールには1つの文字列に見えます。「A-100、B-200」は「A-100」と一致しません。「10、5」は数値ではないので、足し算にも入りません。A-100の数量が 6 になるのはこのためです。

見た目のための行は、ツールから見るとデータの行と区別がつきません。小計と合計も金額として足されるので、金額の合計は正しい 51,800 の3倍になります。Excelが範囲を自動で選ぶときは、空白の行で表が途切れます。

Excelが範囲を自動で選ぶようすを、確かめてみます。

  1. NG台帳の A4 を選ぶ
  2. Ctrl + T を押す
  3. 「テーブルの作成」の範囲を見て、「キャンセル」を押す

NG台帳でCtrl+Tを押したときの「テーブルの作成」(範囲が $A$3:$F$6)

Excelが選んだ範囲は 6行目までです。ピボットテーブルや Power Query の「テーブルまたは範囲から」も、同じように空白の行の手前までを表とみなします。ここでは「OK」を押さず、必ず「キャンセル」で閉じます。

手順

NG台帳を、OK台帳と同じ形に直します。操作はすべて「NG台帳」シートで行います。

ステップ1 見出しより上の行を消す

  1. 1行目と2行目の行番号を選ぶ
  2. 右クリックして「削除」を選ぶ

見出しが1行目に上がり、データは2〜14行目になります。

ステップ2 結合を解除して、空いたセルを埋める

  1. B2:B14 を選ぶ
  2. 「ホーム」タブの「セルを結合して中央揃え」の▼から「セル結合の解除」を選ぶ
  3. B2:B14 を選んだまま、「ホーム」タブ →「検索と選択」→「条件を選択してジャンプ」を選ぶ
  4. 「空白セル」を選んで「OK」を押す

「選択オプション」で「空白セル」を選んだ状態

B3・B5・B7・B9・B11・B13 の6つが選ばれ、B3 が白く残ります。そのまま =B2 と入力し、Ctrl + Enter で確定します。

=B2

空白セルに「=B2」が入り、取引先が埋まった状態(B3を選択)

選んだ6つのセルに、それぞれ「1つ上のセル」を指す数式が入ります。B3 は「東邦商事」、B5 は「小計」になります。

最後に、数式を値に変えます。B2:B14 をコピーし、「ホーム」タブの「貼り付け」の▼から「値」を選びます。数式のままだと、あとで並べ替えたときに「1つ上のセル」が別の行になり、取引先が変わってしまいます。

ステップ3 小計・合計・空白だった行を消す

見た目のための行は、小計・合計・空白のどれも、受注日(A列)が空です。データの行には必ず受注日が入っているので、A列が空の行を消せば、見た目のための行だけが消えます。B列の値には頼らないので、空白の行の上にどんな行があっても同じ手順で消せます。

  1. A2:A14 を選ぶ
  2. 「ホーム」タブ →「検索と選択」→「条件を選択してジャンプ」を選ぶ
  3. 「空白セル」を選んで「OK」を押す
  4. 「ホーム」タブの「削除」の▼から「シートの行を削除」を選ぶ

4・5・8・9・12・13・14行目の7行が消えます。

小計・合計・空白だった行を消したあと(A1:F7)

データは2〜7行目の6行になります。

ステップ4 1行に複数件ある行を分ける

2行目(東邦商事・2026/10/1)を2行に分けます。

  1. 2行目の行番号を右クリックして「コピー」を選ぶ
  2. 同じ2行目の行番号を右クリックして「コピーしたセルの挿入」を選ぶ
  3. 2行目の C2:F2 を A-100・10・1200・12000 に書き換える
  4. 3行目の C3:F3 を B-200・5・800・4000 に書き換える

8行目(南風産業・2026/10/5)も同じ操作で2行にし、8行目を A-100・3・1200・3600、9行目を B-200・8・800・6400 にします。

1行1件に分けたあとのNG台帳(A1:F9)

A1:F9 が、OK台帳とまったく同じ8件になりました。

ステップ5 テーブルにして、集計を確かめる

  1. A1 を選ぶ
  2. Ctrl + T を押す
  3. 範囲が $A$1:$F$9 になっていることを確かめて「OK」を押す

直したNG台帳でCtrl+Tを押したときの「テーブルの作成」(範囲が $A$1:$F$9)

今度は、データの全行が範囲に入ります。テーブルにしておくと、行を足しても範囲が自動で伸びます。

「集計」シートに戻ると、B列も 51,800・22,000・19・8 になり、C列とそろいます。冒頭の画像がこの状態です。

例:ほかのツールに読ませる前の確認リスト

台帳を渡す前・読み込む前に、次の6つを確かめます。

確かめること よくある崩れ方 直し方
見出しは1行だけか タイトル行・2段の見出し 見出しより上の行を消し、見出しを1行にまとめる
結合したセルが無いか 同じ値の行を結合 結合を解除し、空いたセルを埋める(ステップ2)
1行が1件か 「A-100、B-200」のように1セルに複数件 行を分ける(ステップ4)
データの行だけか 小計・合計・空白の行 受注日が空の行を消し、集計は別のシートで出す(ステップ3)
1つの列に同じ種類の値だけか 数量の列に「10、5」「未定」 数値の列には数値だけを入れる
1シートに1つの表か 横や下に別の表を並べる 表ごとにシートを分ける

小計や合計が見たいときは、台帳の中に行を足さず、「集計」シートのように別の場所で数式を書きます。テーブルの集計行を使う方法もあります。小計の行を入れた見せる用の表が必要なら、台帳をコピーしたシートに入れます(表を折りたたんで見せる方法も、「シートをコピーしてから」小計を使うよう書いています)。

この手順を毎月くり返すなら、Power Query に置き換える道もあります。結合の下の null は「フィル」→「下へ」で埋まり、空白の行は「空白行の削除」で消えます。くわしくはデータクレンジング入門を見てください。

よくあるエラー

ピボットテーブルに「(空白)」という項目が出る

原因: 結合セルの下のセルや、空白の行がデータとして読まれています。

直し方: ステップ2で結合を解除して埋め、ステップ3で受注日が空の行(空白の行を含む)を消します。

合計が、手で数えた金額より大きい

原因: 小計・合計の行が、データの行と一緒に足されています。

直し方: ステップ3で、受注日が空の小計・合計の行を消します。

テーブルやピボットテーブルの範囲が、途中の行で切れる

原因: 表の途中に空白の行があります。Excelは空白の行の手前までを1つの表とみなします。

直し方: 空白の行を消してから、もう一度範囲を選び直します。

並べ替えたら、埋めた取引先がずれた

原因: ステップ2で入れた =B2 などの数式を、値に変えていません。

直し方: 並べ替えを元に戻し(Ctrl + Z)、B列をコピーして「値」で貼り付けてから並べ替えます。

まとめ

  • ほかのツールは、Excelの表をデータベースと同じ「1行1件」の決まりで読む
  • ふつうに結合したセルは、左上のセル以外が空として読まれる
  • 1つのセルに複数件を入れると、一致も足し算もできなくなる
  • 小計・合計・空白の行は、データの行と区別されない。Excelが範囲を自動で選ぶときは、空白の行で表が途切れる
  • 直すときは、見出しより上の行を消す → 結合を解除して埋める → 受注日が空の行(見た目の行)を消す → 行を分ける、の順
  • 小計や合計は、台帳の外で数式やピボットテーブルで出す

まずは手元の台帳で、Ctrl + T を押してみてください。Excelが選んだ範囲が台帳の全行と合わなければ、どこかに見た目のための行があります。

関連記事

対応バージョン: Excel 2007 以降(SUMIFS とテーブルは 2007 から)

サンプルファイル

記事中で使用しているサンプルデータはこちらからダウンロードできます。

タイトルとURLをコピーしました