• ベストアンサー

エクセルで数字を転記する方法

いつもお世話になります。 エクセルの初歩的な質問ですが、ある規則正しく並んでいる数字を表にまとめたいと思っています。 例えば以下のように数字が並んでいるとします。     A  B  C 1   5  3  2 2   9  1  8 3   8  3  6 4   0  7  3 5   9  5  4 別の表には A1 A2 B1 C1 A4 A5 B4 C4 というようにAが続けて2行その後にBCが1行ずつ続き、その次の行(A3)をとばしてAが2行、BCが1行ずつ・・・とある規則で続いていきます。 簡単な数式を使って表にまとめる方法を教えていただきたいと思います。 尚、マクロは知りませんし、難しい用語も分かりません。月曜日の仕事で必要なので、日曜日中に宜しくお願い致します。

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

  • ベストアンサー
  • dac203
  • ベストアンサー率43% (92/212)
回答No.2

上側の表が入っているシートをSheet1、下側の表をSheet2に作成するとします。まずSheet2のA1~D1に次の様に式を入力します。 A1のセル =OFFSET(Sheet1!$A$1,(ROW()-1)*3,0,1,1) B1のセル =OFFSET(Sheet1!$A$2,(ROW()-1)*3,0,1,1) C1のセル =OFFSET(Sheet1!$B$1,(ROW()-1)*3,0,1,1) D1のセル =OFFSET(Sheet1!$C$1,(ROW()-1)*3,0,1,1) そうしましたら、Sheet2のA1~D1を必要な分だけ下にコピーします(ドラッグすればできますよね)。 ・・・という感じですがご要望に沿ってますでしょうか。

mscch
質問者

お礼

困っている時に早急なご回答ありがとうございました。 早速活用させていただきます。

mscch
質問者

補足

すごーい (*^-^*) 出来ました。ありがとうございました。 OFFSETを調べましたら、基準、行数、列、高さ、幅とありました。こんな便利な関数があるんですね。 二つ質問してもいいでしょうか。 (1)Sheet1とSheet2のセルの場所が同じでないと出来ないのでしょうか。違う場所では出来ませんでした。 (2)=ROW()を調べたら、「数式が入力されている行の行番号を調べます」とありましたが、ROW()-1の意味がよく分かりません。意味を教えていただけないでしょうか。度々すみませんが、宜しくお願い致します。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • dac203
  • ベストアンサー率43% (92/212)
回答No.5

#2です。 >違う場所では出来ませんでした 違う場所でも可能ですが、式をいじってやる必要があります。 >ROW()-1の意味がよく分かりません まぁこれは式の説明をしないとわかりませんよね(^^;)>。 ということでちょと説明。例としてこの式を使います。 =OFFSET(Sheet1!$A$1,(ROW()-1)*3,0,1,1) これが入っているのはSheet2のA列になりますが、A列にはSheet1のA1、A4、A7・・・を表示されたいわけです。よく見るとSheet1の番号が3づつ飛んでますよね?なのでOFFSET量は0、3、6・・・と変化させればいいわけです(Sheet1のA1を基準として固定していますので。Sheet1の表の始まり(左上)がA1でない場合は変えてあげる必要があります。)。 Sheet2のA列においてROW()で得られる値は、A1は1、A2は2、A3は3・・・となります。この数値を使って先の0、3、6・・・を得るようにしなくてはならないので・・・ (ROW()で得られた値-1)x3 としているわけです。Sheet2のどこに記述するかによってこの部分はいじってあげなくてはなりません。ですから「別の表」の始まり(左上)がA7のセルだった場合はROW()で得られる値は7、8、9・・・となりますのでROW()-1の部分はROW()-7とする必要があります。 ・・・とこんな感じでわかりますでしょうか?

mscch
質問者

お礼

度々のご回答ありがとうございます。 無知な私に詳しく説明して頂き、大変よく分かりました。 これでぐっすり寝れます。(笑)

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3です。「別の表」であるらしいので、元のシート名をSheet1として =INDIRECT("A"&(ROW()-1)*3+1) を =INDIRECT("Sheet1!A"&(ROW()-1)*3+1) にしてみてください。 他の3つも同じくSheet1!を加えて、変えてください。

mscch
質問者

お礼

再度ご回答ありがとうございました。 やっと出来ました♪ もっと関数を沢山使いこなせるようになりたいです。 また困った時は宜しくお願い致します(^^;)

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

「別の表」のA1に =INDIRECT("A"&(ROW()-1)*3+1) B1に =INDIRECT("A"&(ROW()-1)*3+2) C1に =INDIRECT("B"&(ROW()-1)*3+1) D1に =INDIRECT("C"&(ROW()-1)*3+1) と入れて、下方向に式を複写する。

mscch
質問者

補足

ありがとうございます。 A1だけやってみましたが、うまく出来ません。(;;)どうしてなのか分かりませんが、せっかく返信していただいたのに申し訳ありませんでした。

すると、全ての回答が全文表示されます。
  • dac203
  • ベストアンサー率43% (92/212)
回答No.1

別の表の A1 A2 B1 C1 A4 A5 B4 C4 というのはセルの番号ですか?つまり・・・ 5 9 3 2 0 9 7 3 と入ればいいのでしょうか?

mscch
質問者

補足

そうです。 宜しくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう