- ベストアンサー
『エクセル』 2つの列を1列で表示させたいです。
- みんなの回答 (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以下に貼り付けて下さい。
その他の回答 (2)
- TammyG3
- ベストアンサー率30% (34/111)
No.1さんと同じですが、少しすっきりさせると、 = IF( ROW( A1 )<= COUNTA(A:A ), A1, INDEX(B:B, ROW( A1 )- COUNTA(A:A ) ) ) 鎌倉 曽野蜩
お礼
ありがとうございました。助かりました。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! ちょっと泥臭い方法ですが・・・ 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
お礼
ありがとうございました。助かりました。
お礼
ありがとうございました。助かりました。 内容ははっきり言って理解できませんがコピペで何とかできました。 ただD行の最後のセルに"0"が表示されてしまうのは仕方がないのですかね?