• ベストアンサー

『エクセル』 2つの列を1列で表示させたいです。

エクセルで2つの列(A列及びB列)にそれぞれ入力されているデータ(行数不定)を添付画像のように1列(D列)に表示させたいです。 できれば、A列にデータを追加したら自動的に間に入るようにしたいです。 よろしくお願いします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 途中に空欄のセルが存在していたり、文字列データと数値データが混在していたりする場合でも有効な方法です。  まず、D1セルに次の数式を入力して下さい。 =IF(IF(ROWS(D$1:D1)>MAX(IF(COUNTIF($A:$A,"*?"),MATCH("*?",$A:$A,-1)-ROW($A$1)+1,0),IF(COUNT($A:$A),MATCH(9E+307,$A:$A)-ROW($A$1)+1,0)),INDEX($B:$B,ROWS(D$1:D1)-MAX(IF(COUNTIF($A:$A,"*?"),MATCH("*?",$A:$A,-1)-ROW($A$1)+1,0),IF(COUNT($A:$A),MATCH(9E+307,$A:$A)-ROW($A$1)+1,0))+ROW($B$1)-1),INDEX($A:$A,ROWS(D$1:D1)+ROW($A$1)-1))="","",IF(ROWS(D$1:D1)>MAX(IF(COUNTIF($A:$A,"*?"),MATCH("*?",$A:$A,-1)-ROW($A$1)+1,0),IF(COUNT($A:$A),MATCH(9E+307,$A:$A)-ROW($A$1)+1,0)),INDEX($B:$B,ROWS(D$1:D1)-MAX(IF(COUNTIF($A:$A,"*?"),MATCH("*?",$A:$A,-1)-ROW($A$1)+1,0),IF(COUNT($A:$A),MATCH(9E+307,$A:$A)-ROW($A$1)+1,0))+ROW($B$1)-1),INDEX($A:$A,ROWS(D$1:D1)+ROW($A$1)-1)))  そして、D1セルをコピーして、D2以下に貼り付けて下さい。

helimanky
質問者

お礼

ありがとうございました。助かりました。 内容ははっきり言って理解できませんがコピペで何とかできました。 ただD行の最後のセルに"0"が表示されてしまうのは仕方がないのですかね?

その他の回答 (2)

  • TammyG3
  • ベストアンサー率30% (34/111)
回答No.2

No.1さんと同じですが、少しすっきりさせると、 = IF( ROW( A1 )<= COUNTA(A:A ), A1, INDEX(B:B, ROW( A1 )- COUNTA(A:A ) ) )                                   鎌倉 曽野蜩

helimanky
質問者

お礼

ありがとうございました。助かりました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! ちょっと泥臭い方法ですが・・・ D1セルに =IF(COUNTA(A:B)<ROW(A1),"",IF(COUNTA(A:A)>=ROW(A1),INDEX(A:A,ROW(A1)),INDEX(B:B,ROW(A1)-COUNTA(A:A)))) という数式を入れオートフィルでずぃ~~~!っと下へコピーではどうでしょうか?m(_ _)m ※ 条件として途中に空白セルはない!という前提です。m(_ _)m

helimanky
質問者

お礼

ありがとうございました。助かりました。

関連するQ&A