dポイントプレゼントキャンペーン実施中!

Excelに関して質問です。

複数の列に入力されている文字を一つの列にまとめる方法が知りたいです。
その際、文字が入力されていない箇所は詰めて並べたいと思います。

範囲はB4~AD83の間です。
ただ、状況として範囲内の空白には書式(関数)が入っている状態です。


 A   B   C     D   E
1文字1 空白 文字2  文字3  空白
2空白 文字4 文字5  空白   空白

F
文字1
文字2
文字3
文字4
文字5

*画像としても載せておきます。



何卒、ご教授よろしくお願いします。

「複数の列に入力されている文字を一列にまと」の質問画像

A 回答 (4件)

数式でやるならA1セルに


=IF(COUNTIF($B$1:$AD$83,"*?")<ROW(A1),"",
INDEX($B$1:$AD$83,SMALL(IF($B$1:$AD$83<>"",ROW($B$1:$AD$83)),ROW(A1)),
MOD(SMALL(IF($B$1:$AD$83<>"",ROW($B$1:$AD$83)*100+COLUMN($B$1:$AD$83)-1),ROW(A1)),100)))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
    • good
    • 0
この回答へのお礼

ありがとうございます。無事解決しました!

お礼日時:2016/05/29 21:46

こんにちは!



VBAになりますが、一例です。
元データはSheet1にあり、Sheet2のA列に羅列するとします。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim cnt As Long, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
wS.Range("A:A").ClearContents
For Each c In .Range("B4:AD83")
If c <> "" Then
cnt = cnt + 1
wS.Cells(cnt, "A") = c
End If
Next c
End With
End Sub 'この行まで//

※ 関数でないので、データ変更があるたびに
マクロを実行する必要があります。m(_ _)m
    • good
    • 0
この回答へのお礼

マクロも勉強中でしたので、非常に勉強になります。ありがとうございました。

お礼日時:2016/05/29 21:45

取り急ぎ処理するならNo.1の回答にある1の方法ですね。



セル範囲 B4:AD83 を選択し、コピーします。
テキストエディタに貼り付けます。
[タブ] を [改行] に置換します。
[改行][改行] を [改行] に置換します。
置換し終わったものをコピーします。
F列に貼り付けます。

この時使用するテキストエディタは正規表現を扱えるもの。
オススメはこちら。

TeraPad - 窓の杜ライブラリ
http://www.forest.impress.co.jp/library/software …

[タブ] を [改行] に置換は、検索文字「\t」置換後文字「\n」とします。
[改行][改行] を [改行] に置換は、検索文字「\n\n」置換後文字「\n」とします。
    • good
    • 0
この回答へのお礼

ありがとうございます。非常に助かります。

お礼日時:2016/05/29 21:44

考え方は2つあります。


1.テキストエディタにコピーしてタブを削除する方法。
2.数式を使う方法
=if(a1="","",a1)&if(b1="","",b1)&if(c1="","",c1)&if(d1="","",d1)&if(e1="","",e1)
    • good
    • 0
この回答へのお礼

ありがとうございます。教えていただいた数式を使う方法で行ったのですが、
一つのセルの中に下のように複数の列の文字が入ってしまいました。

旅費交通費,客先訪問,SCP,484旅費交通費,客先訪問,WSC,1298旅費交通費,客先訪問,SDE,864旅費交通費,客先訪問,CMD,330


私の説明不足がございました。

できるのならば、複数の列のものを分けて並べたいです。
例えばB5のセル、C5のセルに値が入っている場合は

行:B5、C5セル ではなく。

行:B5
行:C5 のようにしたいです。

教えていただいている立場なのに申し訳ございません。
可能であれば、引き続きよろしくお願い致します。

お礼日時:2016/05/22 23:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!