• ベストアンサー

Excelで一列に並んだデータから表を作成したい

Excelで、A列に入力したデータがあります。 これを、横3列使った表に加工したいのですが、どのような方法がありますでしょうか? 例えば、A1~A5に入力されたデータを、横3×縦2の表にしたいのです。 A1     A1 A2 A3 A2     A4 A5 A3  →   A4 A5 関数など使ってできないかと考えたのですが方法がわからず、 仕方なくA1~A3をコピー→行列を貼り付けで表を作成しました。 が、データが100個以上あるのでどうにも時間がかかってしまいます。 何か良い方法ありましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

例 B:D列にする場合 B1=INDEX($A$1:$A$100,(COLUMN()-1)+(ROW()-1)*3,1) または B1=OFFSET($A$1,(COLUMN()-2)+(ROW()-1)*3,0) 上記をB1:D6の範囲にコピー 注意:セルがブランクの場合、数式の結果はブランクでなく0になります。

sakuranbo888
質問者

お礼

早速のご回答ありがとうございました。 どちらの式も理解できました。 今後、A列の途中途中に新規データが挿入されることがあるのですが、その度に表を作り直す手間が無くなりました。 どの関数も使ったことがなかったですが、覚えておくと色々役立ちそうです。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういうのは関数の問題である前に、数学のパズル的問題です 1,2,3 4、5,6 ー・・ 最左列に来るのは1,4・・で差を取ると3ですね(公差) だから4->2、5->2、6->2になるのは3で割ればよいらしいと考える。しかし4/3は1ですから2にならない。そのために (2行ー1)*3+列番目1でやる。 それで 0+1、0+2,0+3 1*3+1、1*3+2,1*3+3 2*3+1、2*3+2、2*3+3 ・・ でうまくいく。 それでセル範囲から特定のセルを取ってくるのはINDEX関数なので Sheet1にデータがあるとして Sheet2のA1に =INDEX(Sheet1!$A:$A,(ROW()-1)*3+COLUMN()) とします。 第二引数に上記の(行ー1)*3+列の式を使いました。 A1の式をC1まで式を複写。 A1:C1の式を下方向に式を複写、で

sakuranbo888
質問者

お礼

大変にわかりやすい説明をありがとうございました。 パズル的なものを解いていくのって、回答がわかったときスッキリしますね。 式としてはNo.1の方とほぼ同じなので、回答順にポイントをつけさせていただきます。 失礼かとは思いますが、どうぞご了承ください。

関連するQ&A

  • 同じデータで縦と横の表を同時に作成したい

    Excel2002を使用しています。 日毎に20項目の数を集計したデータがありまして、日付を縦にした表と横にした表を作成したいのです。 コピーで行列の入替えが出来る事が分かったのですが、フォームを作って、それぞれの表にデータを入力しなければなりません。 出来れば、縦の表に数値を入力するだけで、横の表にも反映されるようにしたいです。 どうかご教授下さい。

  • Excelで作成した表をWordに貼り付けしたら

    Excel・Wordともに2010です 予定表をExcelで作成しWordにコピー・貼り付けしました この表がもう一つ必要なので Wordでコピー・貼り付けをしようとするのですがうまくいきません どうやら元の表にかぶさって貼り付けされているようなのです Excelでは単に文字を入力し罫線を引いただけで関数などは使っていません このような現象についてどなたか心当たりはありませんか このような現象を回避し 元の表の下に貼り付けることはでにないものでしょうか よろしくお願いします

  • エクセルで作成した縦に長い表をA4に2列で印刷

    エクセル2007で作成した縦に長い表をA4縦方向に2列づつ印刷していくにはどうすればよいのでしょうか? 表は顧客リストなのですが、縦に長い表をエクセルで作成しました。 表は新しい顧客情報をどんどん下に入力していくので表はどんどん縦に長くなります。 また、データをおいうえお順で並べ変えたりするので この縦に長い表のフォーマットは便宜上くずしたくないのです。 細長い表なので印刷する場合はA4用紙縦方向に2列づつ印刷していきたいのです。 そういうことは可能でしょうか? 割り付け印刷ではうまく表を2列に配置できず見栄えがよくなく、 何か良い方法があれば教えてください。

  • エクセル 表のデータを一列にしたい

    表にあるデータを一列したいのですが・・・。 簡単な関数なら理解できます。   1   2   3 ・・・ A 11| 22| 33 B 44| 55| 66 C 77| 88| 99 ・ ・ ・ となっているのを、 11 22 33 44 55 66 77 88 99 ・ ・ ・ としたいんです。 出力先はエクセルでもワードでもメモ帳でもかまいません。 なるべく簡単に出来る方法はないでしょうか? マクロは使わずに出来るとありがたいです。

  • Excelで表の作成方法を教えてください~

    Excelで、1列目に条件(1)、2列目に条件(2)、3列目に(1)(2)の条件を満たした値が設定されている 表Aがあります。 表Aの条件(1)はそのままで、条件(2)を1行目に横に設定し、縦の条件(1)を元に横の条件(2)の 交差する位置に値が入る表Bを作成したいのですが、どのような方法があるでしょうか? 表Aの値を更新すると表Bに反映されるようにしたいです。 宜しくお願い致します。

  • エクセル2003 表引き

    こんにちは いつもお世話になっています。 エクセル2003を使っています。 Sheet1のA列に連番数字、B列に都道府県名があります。 1 青森 2 秋田 3 岩手 4 愛媛 5 鹿児島 Sheet2のA1にSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のB1にはSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

  • エクセルで長い表を途中で折り返して2行にしたい

    今、エクセルで縦81行、横にも結構広い表を作成したのですが、それをワードに貼り付ける必要があります。 ですが、そのままコピーして貼り付けると3ページになってしまい、横もかなりはみ出してしまいます。 貼り付けのメニューで「図」にして縮小していけばなんとか入るのですが、字が小さくなってしまい、見にくいです。ページ数にもかぶってしまいますし… ですので、表を40行目ほどで折り返し、 2行(2列?)にしたいと思い、色々検索したのですがやり方が見つかりません。 下手くそですが参考の図を添付しました。 わかる方がいましたらよろしくお願いします。

  • アクセスのクエリにエクセルの表を貼り付け

     アクセスのクエリをデザインビューで組むときに、「抽出条件、または」項目にに エクセルの表を引用(コピーして貼り付け)する事は出来ないでしょうか?  エクセルの表は縦に1列に条件が入力されて並んでいます。  宜しくお願い致します。

  • エクセル2003 星取表作成

    エクセル2003 星取表作成 エクセルで表を作成していて、この空欄を埋めたらこの想定値が返るというようにしたいです。 想定値の算出は添付のようなイメージです。 この表は横に30列、縦にも40行ほどあります。 このような想定値を簡単に出す方法はありますか? 想定値=表の中の金額の合計÷空白セルの数

  • エクセル2003で表引き

    こんにちは いつもお世話になっています。 エクセル2003で表引き Sheet1のB列に都道府県名があります。 青森 秋田 岩手 愛媛 鹿児島 Sheet2のK1セルにSheet1のB1データを引いてくるために =Sheet1!B1 という関数を入れました。 Sheet2のL1セルにSheet1のB2を引いてきたいのですがフィルハンドルでのコピーに失敗します。 どのような関数を使えば横にコピーできるようになるでしょうか。Sheet2のM1,N1に同様にコピーしていきたいのです。 縦のデータを横にしたいのではなく、関数で引っ張りたいのです。 よろしくお願いします。

専門家に質問してみよう