ひろふみのエクセル知恵袋
脱初心者で
豊かな『生活』の時間と 『仕事』のゆとり
★Excelが苦手な方は、以下の順番で学習していただけましたらと思います。
【0からの学習編 ~セル理解編~ 計算式理解編~ 現場の実務編~】
現場の実務編

【現場の実務編11】連続入力されたセルの値を結合されたセルに自動表示させる方法(INDIRECT&ROW関数)多数のセル結合がある際に効果的!

Sponsored Links

練習用サンプルデータ(ダウンロード)
※Excelは練習用(問題)と成果物(解答)の2種類あります。閲覧したい方はダウンロードして下さい。

・セルの値を結合したセルに表示する方法

入力されたセルの値を、別のセルに反映させる方法は、一つ一つのセルの値をコピー&ペーストで単純に張り付けるか、数式で自動反映できるように処理するかの2つになります。

コピー&ペーストで対応できるタイプは、結合されていないセルであれば、簡単ですが、結合されたセルの場合は、貼付けがうまくいきません。あとは、1つ1つのセルに直接、セル番地を入れる数式(例:=A1、=A3など)を組むか、INDIRECT関数を使って一気に処理するかになります。今回、INDIRECT関数を使ったやり方をご紹介します。

(練習で実施するセル結合先への自動反映の完成図)

 ※beforeからafterの状態まで仕上げる過程を説明します。

作成するものE列の結合(2行)されたセルに、A列の顧客を上から順番に表示させる問題です。

練習サンプルデータは、ダウンロードファイルのシート「練習用」となります。

‘【1】通常の単一セルの値を、別の結合なしセルに表示させる方法

参考までに、通常のセルの値を別のセルに表示させるやり方をご紹介します。

それほど数が多くない場合は、このやり方でもよいかと思います。

あと、コピー&ペーストを使う場合は、参照元(元ネタのデータ)の値が今後、変更される可能性がなければ、コピー&ペーストで貼付けでも問題がないかと思います。

※元ネタが変更される可能性がある場合は、コピー&ペーストは、使用しない方が良いかと思います。あとで変更情報を反映させないといけない場合が大変です。

サンプルを確認されたい方はサンプルのシート「ご参考(単一セル→単一セル)」を参照ください。

これから、A列の顧客名をE列に順番に表示させます。

‘①セルE2を選択します。

‘②セルE2に「=A2」と入力

※セルに「=」と入力した後、マウスでセルA2をクリックも可

すると、E2に「〇会社」と反映されます。

‘③セルE2をコピーしてE3からE4まで範囲選択し、貼付け。

すると、E3からE4まで値が反映されます。

※ESCキーを押して、コピーモードを解除しておきましょう。

‘【2】通常の単一セルの値を、別の結合ありセルに表示させる方法

まず、【1】で紹介した通常のやり方でやるとどうなるか検証してみましょう。

※サンプルをご確認されたい方はシート「練習用」です。

‘①セルE2に「=A2」と入力し、ENTERキーを押します。

‘②次に、セルE2をコピーして、E3~F4まで貼り付けます。

すると、E3は「□会社」とE4は「0」の値となり、求めている顧客名が表示されません。

(原因解説)

 下図の「1」のセルを選択して下さい。そして、「名前ボックス」を確認すると

現在の選択しているセルのセル番地がわかり、「数式バー」では、参照先のセルがわかります。

POINT

 ※名前ボックスに表示しているセルが、セル結合後の正式なセル番地。

 ※数式バーを確認すると現在参照しているセル「=A4」がわかります。

※セル結合した特徴

  結合すると、セルは上の位置にあるセルを参照する特徴があります。

となり、単純に「=A2」をコピーして、下に貼付けるという感じではいきません。

では、実現したいことを整理すると以下の図です。

少ない数であれば、1つ1つのセルに数式「=A2」「=A3」「=A4」を入力するという事もありですが、数が多いという前提でいくと、他の方法で、INDIRECT関数を使う方法があります。

‘①セルE2を選択し、数式「=INDIRECT(“A”&INT(ROW()/2)+1)」を入力します。

‘②次にE2をコピーし、その下のセルE4からE6まで張り付ける。すると計算結果が反映します。

【3】数式の解説

‘①まず、ROW()から説明します。

ROW関数は、入力されているセルの行番号を返します。

‘②ROW()を2で割ります。

すると、規則的な連続する番号が表示されました。

‘③今回のように、2で割り切れる場合はよいのですが、割り切れない場合は少数になってしまう為、int関数を使って、整数値のみを取り出します。参考のため、int関数を今回使っておきます。

‘④「=INT(ROW()/2)」に1を足します。

これに+1を足すと、2,3,4となります。さらに、その数字の頭にAを付けると、A2、A3、A4となり、参照したいセル番地になってくることがわかります。

‘⑤INT(ROW()/2)の数式の前に「“A”&」を付けます。

‘⑥INDIRECT関数の中に、「”A”&INT(ROW()/2)+1」を入れて、セル参照「A2、A3、A4」した値を返します。

【4】まとめ

継続的に更新され使い続けるExcelや、数が大量にあるケースなどは、INDIRECT関数を使うと効果的かと思います。

ただ、一回しか使わない資料で数も少ない、また、急ぎの資料で手入力したほうが早い場合は、コピー&ペーストや、「=セル番地」などで、難をしのぐほうがよいかもしれません。

Sponsored Links