• ベストアンサー

エクセルで二つの列を一つの列にコピー

A列とB列を、まとめてC列に以下のようにコピーしたいのですが。 C1にA1 C2にB1 C3にA2 C4にB2 C5にA3 C6にB3 ・・・ ・・・ C99にA50 C100にB50 一括して行う方法を教えて頂きたいのですが。 よろしくお願いします。

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

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.3

C1に以下の式を入力して、下にコピーして下さい。 =INDIRECT(IF(MOD(ROW(A1),2)=0,"B","A")&CEILING(ROW(A1)/2,1)) A列B列との連携が必要ないなら、最後にコピー→値貼り付けを。 簡単に内容を説明すると、 IF(MOD(ROW(A1),2)=0,"B","A" 行数が奇数のときA列の値、偶数ならB列の値となるので、 AかBかを判別。 C1に対してA1、C6に対してB3ということで、C列の(行数/2)を 小数点以下切り上げたものがA・B列の行番号となるので、 CEILING(ROW(A1)/2,1) ↑で行番号とし、 INDIRECT関数で、セルアドレスとしています。

chamire
質問者

お礼

ありがとうございます。

その他の回答 (4)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.5

こんにちは。No.4さんの式がスマートでわかり易くていいなぁって思います。 なので蛇足ですが、部分的にでも参考になれば。 C1=INDEX(A:B,INT((1+ROW())/2),2-MOD(ROW(),2)) もしくは C1=OFFSET(A1,-INT(ROW()/2),1-MOD(ROW(),2)) (C100までコピーですね)

chamire
質問者

お礼

ありがとうございます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次のセルを設定し、下方向にコピーで如何でしょうか。 C1に=INDIRECT("A"&ROUND(ROW()/2,0)) C2に=INDIRECT("B"&ROUND(ROW()/2,0))

chamire
質問者

お礼

ありがとうございます。

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.2

もっとエレガントな回答が有るかと思いますが・・・・ とりあえず セルD1 に下式を 入力し、 下方向にコピペ =INDEX(A:B,ROUNDUP(ROW()/2,0),IF(MOD(ROW(),2)=1,1,2)) D列に表示された値を いったんコピーし C列に 形式を選択して(「値」を指定)ペースト

chamire
質問者

お礼

ありがとうございます。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

マクロを使用すれば可能です。

関連するQ&A