23.2.8. 既存のデータを取り込む手法
Excel でブックを編集していると、作業がブック内で収まらず、他のブックのデータを引用する必要が生じることがあります。また、Excel のブックではないデータを引用したいこともあります。そうした際に使う
- 他のブックからのデータ読み込み
- コピー & ペースト
の手法を説明します。
このページでは、 23.2.4. コピー & ペーストと数式の入力 で作ったファイルを使います。もしファイルを作っていない人は、説明を読んでファイルを作るか、あるいは sample_meibo_for_23_2_8.xlsx をダウンロードして使ってください。ただし、ここでダウンロードしたファイルを使う場合は、以下の説明で sample_meibo.xlsx のファイル名を適宜読み替える必要があります。
サンプルファイルのダウンロード #
この節での実習は
前節 23.2.4. コピー & ペーストと数式の入力 まででまとめた数学の試験成績に、別の先生から受け取った英語の成績を合わせて、2 科目の成績表を作る
という設定で行います。(数学や英語が嫌いだったら、適宜別の科目名に置き換えてください。) 次のファイルをダウンロードしてください。
別のブックの読み込み #
それではダウンロードが済んだら、2 つの成績表を合併しましょう。
新しいファイルの中身を今まで編集したファイル中に取り込んでもいいのですが、ここでは新しいブックに 2 科目成績表を作りましょう。新しい空白のブックを作り
- 前節まで編集していたファイル
- 今回ダウンロードした sample_score_english.xlsx
- 空白のブック
を、全て同じフォルダに保存してください。以下、新しく作った空白ブックの名前を score_total.xlsx と仮定して話を進めます。
次に、どこにどのデータを読み込むか決めましょう。今回は A 列から順に「組」「番号」「姓」「名」「数学合計点」「英語合計点」を順番に書くことにしてみます。まず、次のように見出しを書き込んでください。
この後 score_total.xlsx のセル A2 に、score_sample.xlsx の A2 セルの値を読み込まないといけません。これを実現するには、まず score_total.xlsx のセル A2 に等号 = 「だけ」を入力します。
この入力待ちの状態で、参照したいデータの入っている score_sample.xlsx のウィンドウを開き、セル A2 を選択します。
クリックすると、score_total.xlsx のセル A2 が変化します。
このまま
キーで内容を確定すれば、score_total.xlsx のセル A2 に score_sample.xlsx のセル A2 が読み込まれます。なお、この方法は同じブック内の別のシートに対しても適用できます。
別のブックからデータを読み込む際は、読み込むブックの場所が後で動かないか気を付けてください。別のブックを参照した後に参照先ブックが移動すると、当然参照が崩れてしまいます。
数式のコピー & ペースト #
1 つのセルで内容を読み込んだら、あとは他のセルでも同じことをするだけです。フィルハンドルを使っても良いのですが、ここではコピー & ペーストを使ってみましょう。
まず、セル A2をダブルクリックしてください。そうすると式の中に $A$2 と書かれているはずです。
セルの番地に $ がつくと「絶対参照」と呼ばるものになります。詳細は後で 23.2.11. セルの絶対参照 にて説明しますが、いまは絶対参照だと困るので、$A$2 を A2 に修正してください。
次にセル A2 を右クリックして「コピー」をしてください。これでセル A2 の式がコピーされます。このときセルの回りを、動く点線が囲みます。
次にセル A2 を左上、セル D31 を右下とする長方形の領域をマウスあるいはキーボードで選択してください。
選択領域のどこかで右クリックをし、メニュー中の「ペースト」の項目をクリックします。これで 式の位置が移動したことに応じて、コピーした式の中に出てくる番号がずらされて貼り付けられます。
このように Excel でコピーをすると、通常は値ではなく式がコピーされます。そして式をペーストすると、**式が入力されるセルと式中で登場するセルの位置関係が相対的に変化しないように、式中に登場するセルの位置が自動でずらされます。**この仕組みのおかげで、単なるコピーペーストをするだけで、一連の計算が自動で行われるのです。
同じ手順で、数学の合計点を sample_meibo.xlsx から、英語の合計点を sample_score_english.xlsx からそれぞれ読み込んでみてください。サンプルファイルの通りに計算している場合、次のような結果になるはずです。
セルの参照位置を相対的に考える仕組みは便利ですが、場合によっては「どこに式をペーストしても、同じセルを参照してほしい」こともあります。こういう場合のために、上で少しだけ登場した絶対参照と呼ばれる仕組みがあります。絶対参照については、 23.2.11. セルの絶対参照 で説明します。
色々なコピー & ペースト #
以上見たように、Excel におけるセルのコピー & ペーストでは「相対的な位置を保持した数式」がペーストされます。しかし一方で、式ではなく計算の結果そのものをペーストしたいこともあるでしょう。また Excel のセルには「式」以外に「書式情報」のデータが設定されているのでした。ペーストする情報の中に書式を含めるかどうかも、時と場合によって変わってくるでしょう。
こういうときは、ペーストしたいセルで右クリックをします。するとメニューの中に「形式を選択してペースト」という項目があります。
これをクリックすると、ペーストする情報を選択するダイアログが開きます。必要な情報を選択してください。
ダイアログを見れば分かるように「書式のみ」をペーストすることもできます。この機能を使うと、あるセルの書式を他のセルに対しても簡単に適用できます。
コピー & ペーストを使うと、Excel 以外のアプリケーションと Excel との間でデータをやりとりすることができます。その際 Excel は「なるべく表の形式が保たれるように」という配慮をしてくれます。
たとえば Excel 外のデータをコピーして Excel にペーストするときは
- コピー元データがテキスト形式なら、タブが列と列の境界、改行が行と行の境界とみなされて、表形式にペーストされる
- コピー元データが HTML 形式などで書かれた表なら、その表の体裁が保たれたままペーストされる
といった具合です。逆に Excel のデータをコピーして他のアプリケーションにペーストすると
- ペースト先が Word や PowerPoint なら、表としてペーストされる
- ペースト先がテキスト形式なら、隣り合う列をタブ区切りに、隣り合う行を改行区切りにしてペーストされる
ようになっています。
これらを組み合わせると、色々な表を簡単にテキスト形式に直せます。たとえば「HTML 形式で書かれた表を一旦 Excel にコピー & ペーストして、そこからさらにテキストエディタへコピー & ペーストする」という操作を行うと、HTML 形式で書かれた表の書式だけが消え、値のみが残ったテキスト形式の表が作れます。このように表データを扱う際、「Excel を中継したコピー & ペースト」が役に立つことがあります。