• ベストアンサー

excelの操作でわからないことがあります・・・。

ちょっとややこしい操作なので、うまく説明できるかわかりませんが、できるかぎりわかりやすく説明するつもりなので、よろしくお願いします。 まず、 51 42 35 41 36 50 41 32 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 36 40 39 38 というサンプルデータがあって、ここから1列目の 51 36 ・ ・ ・ 36 を取り出し、 1 1 1 2 1 3 ・・ ・・ ・・ 1 400 というデータ、(2列目は1~400まで1づつ増加)とくっつけて 1 1 51 1 2 36 ・・・ ・・・ ・・・ 1 400 36 というデータにします。 次にサンプルデータの2列目の 42 50 ・ ・ ・ 40 を取り出し、 2 1 2 2 2 3 ・・ ・・ ・・ 2 400 というデータとくっつけて 2 1 42 2 2 50 ・・・ ・・・ ・・・ 2 400 40 という風にする、というのをサンプルの3列目、4列目・・・・とやっていきたいのです。 (わかりにくい説明ですいません) どのような効率的な操作、あるいはマクロを作ればいいでしょうか? 単純に作業するには、サンプルデータの列数が多すぎて時間がかかり過ぎてしまうので、困っています。 ちなみに3列目は 3 1 35 3 2 41 ・・・ ・・・ ・・・ 3 400 39 になります。

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

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

(例データ)本当は400行あるらしいが、6行と仮定して簡単化します。400や6は一定とします。A-D列まで 最終行は同じとします。 A1:D6 51 42 35 41 36 50 41 32 11 23 34 54 34 56 71 34 67 78 33 25 36 40 39 38 (関数式) 例えばG1に =INT((ROW(A1)-1)/6)+1 と入れて下の方に6*4行(G24)まで複写します。 H1に =MOD(ROW()-1,6)+1 と入れて下の方に6*4行(H24)まで複写します。 I1に =INDEX($A$1:$D$6,MOD(ROW()-1,6)+1,INT(ROW()-1)/6+1) といれて下の方に6*4行(I24)まで複写します。 (注)G列、H列がある、本質問の場合は =INDEX($A$1:$D$6,H1,G1)の方が簡単ですね。 G列、H列が無いケースも考えて上記とした。 (結果)G,H,I列は 1 1 51 1 2 36 1 3 11 1 4 34 1 5 67 1 6 36 2 1 42 2 2 50 2 3 23 2 4 56 2 5 78 2 6 40 3 1 35 3 2 41 3 3 34(以下略) のようになります。 他シートに作るのがいいですが、Sheet1!を前につけれは 修正はやさしい。ROW()にはSheet1!を付けないで下さい。 $6は最終行ですから本当の最終行数に変えること。 ●VBAでも10数行で書けますがお望みならば載せますが。

その他の回答 (2)

回答No.2

[列番号]、[行番号]、[そこに格納されているサンプルデータ] という形式で、1列ごとにまとめた表を作りたい、という事でしょうか。 =COLUMN(セル名) で列番号を =ROW(セル名) で行番号を取得できますので サンプルデータが既にEXCELのシートに入っているようであれば サンプルデータがシートの一番左上(A1)のセルから 一つのセルに一つずつデータが入っているとして   1列目     2列目     3列目 =COLUMN(A1)  =ROW(A1)  =A1 という形で数式を入れ、この3つのセルを選択して 右下にカーソルを合わせ、カーソルの形が変わった所でドラッグして 下にコピーしていけば、1列目の内容を示す表ができるかと思います。 ※2列目以降は最初に指定するセル名をその列の最上行のセルにして同様の操作を ※サンプルデータが 1セル - 1データ の形式になっていないならば   #1の方がおっしゃる手順でデータをセル単位に分割する ※サンプルデータがシートの一番左上から始まっていない場合は   =COLUMN(セル名)-左の空白列の数   =ROW(セル名)-上の空白行の数   という形で数式を調整する ※シートをまたいでサンプルデータを見に行く場合は   シート名!セル名 という形で参照する(Sheet1!A1 等) という形で操作する事で、お望みの表が得られませんでしょうか。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

51 42 35 41 は 1つのセルに入っていて空白で区切られているなら データ-区切り位置で「カンマやタブなど~」をチェックし、次の区切り文字で「スペース」を選べば複数セルに分割出来ます。前0がある場合は事前に区切られたときに該当する列を全て書式設定で文字列にしておいた方が良いです。 あとはそれぞれのデータと&で連結させるだけです。 例) =A1&B1 試すのはテストブックで。

関連するQ&A