行数が500行程度あって、各行に、ある列が2分割されているデータがあります。
(全ての列ではないです)
分割を解除して、1行で情報表示をさせたいのですが、手作業でやると膨大なのでマクロでできないかと思っています。
作り方を教えていただけないでしょうか。
セルの結合を解除したい、ということでしょうか?そうでしたら...
Sub Macro1()
For i = 1 To 500
Cells(i, 5).MergeCells = False
Next
End Sub
という感じです(おそらく違いますよね?)。
2列を結合という意味でしたら下のようになります。
Sub Macro2()
For i = 1 To 500
Cells(i, 5) = Cells(i, 5) & Cells(i, 6)
Cells(i, 6) = ””
Next
End Sub
for i=1 to 500の部分が行の指定です。2行目から30行目まででしたらfor i=2 to 30のようにします。
Cells(i,5)の5の部分が列の指定です。A列が1、B列が2のようになります。ここでは5列目を指定しています。
Yahoo! JAPAN
URLはダミーです。
マクロでなくてはだめでしょうか?
該当データをエディタにコピーします。隣り合ったセル(列)はTABで、行は改行で区切られると思いますので、エディタの置換機能でTABをまとめて削除して、EXCELにコピーし戻したら目的を達成できませんか?
http://www.hatena.ne.jp/1128351274#
人力検索はてな - エクセルのマクロで教えてください。 行数が500行程度あって、各行に、ある列が2分割されているデータがあります。 (全ての列ではないです) 分割を解除して、1行で..
中身によりますが、値だけならcsv形式で書出後、テキストエディタ等で区切り部分を一括置換して保存し、再度エクセルで開いてはどうでしょう?
マクロは必要ないと思います。
http://f.hatena.ne.jp/yoo15x/20051004034723
Pictlife - http://www.hatena.ne.jp/1128351274
> ある列が2分割されているデータがあります。
> 全ての列ではないです
この2点から例を考えてみました。
この例では住所が2行に渡ってしまっているデータがあります。
このような場合の住所をひとつのセルにまとめるということでしょうか。
マクロの使用よりも、楽に解決するほうを優先する回答です。
画像のワークシートの例で説明します。
(1) D2 のセルに次の数式を直接入力で入れます(「”」が変換表示されていますので注意)。
=IF(A3=””,C2&C3,IF(A2=””,””,C2))
この定義で計算する式です。
・データの初めには必ず“名前”が入っている
・“名前”が入っていない行の“住所”は上の行の“住所”の後半である
次の行の“名前”が空欄なら、今の行の“住所”に次の行の“住所”を連結して表示。
次の行の“名前”が空欄でなく、今の行の“名前”が空欄なら何も表示しない。
次の行の“名前”が空欄でなく、今の行の“名前”が空欄でなければ今の行の“住所”を表示。
(2) D列の最後 (図の例では D7) へ移動し、[Ctrl] + [Shift] + [ ↑ ] で
一気に (1) で式を入力したセルまでを選択します。
編集 → フィル → 下方向にコピー で D列の全行に式がコピーされ、
連結された住所が表示されていますので、そのままコピーし、
本来の“住所”の最初のセルである C2 を右クリックして、
形式を選択して貼り付けを選びます。
ダイアログで「値」を選んで OK すると、D列に表示されている値が“住所”に入ります。
(3) A列や C列をキーにして全体を並べ替えすると空の行がまとまりますので
それらを削除、D列 も削除して完成になります。
http://www.city.omihachiman.shiga.jp/kikakuzaisei/MMC/qa/2003/ex...
セル内で、折り返し(2行以上)で表示させたい
みなさんは「セルの統合」を教えていますが、もしかして、taichi1500さんの悩みは「分割を解除して、1行で」という表現から、「セルの折り返し表示」もしくは「セル内改行」の解除をしたいのではないでしょうか?
URLはセルの列幅で折り返し表示する手順を示していますが、このレベルであれば、当然この逆の操作で解決します。
ただし、Alt+Entを入力することで発生する折り返し(セル内改行)はこれでは解決しません。
(多分、この状態のことを言っているのではないでしょうか?)
確かに文字列の置換えとかでは Alt+Ent を指定することができずうまくいかないですね。
マクロではなく関数ですが、以下の関数で解決できそうです。
1) 該当列の右隣に1列挿入。
2) 挿入列にて下記の関数を使用。
=CLEAN(該当セル)
3) 500行分コピー
4) 挿入列を範囲指定し、コピー
5) 該当列で形式指定の値コピー
6) 挿入列を削除
これでセル内改行が無くなります。
http://www.relief.jp/itnote/archives/000221.php
Yahoo! JAPAN
上記解説を書いた後で、同じ内容を説明したURLを発見しました。
CLEAN関数は元々「文字列から印刷出来ない文字を削除して返す」という関数です。
コメント(0件)