- ベストアンサー
結合セルを含む空白行に下のデーターを上に詰める
先ほど、質問を出さしていただいたのですが、説明文が詰められているため醜くなってしまいましたので再度出さしていただきます。 よろしくお願いします。 結合セルを含む空白行に、下のデーターを詰める。 下記の場合の、【かわ、やま】は、1行目と2行目のセルを結合させています。また、【うみ、たに】は、3行目と4行目のセルを結合させています。 A B C D E 1 100 AAA かわ やま 2 200 BBB 3 空白 空白 空白 空白 4 空白 空白 5 111 CCC うみ たに 6 222 DDD これを、下のようにしたいのです。 A B C D E 1 100 AAA かわ やま 2 200 BBB 3 111 CCC うみ たに 4 222 DDD 結合されているため下の構文では詰めることができません Dim LastRow As Long With ActiveSheet LastRow = Range("A232").End(xlUp).Row Range("B1:E" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending End With
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じで Sub Macro1() Dim i For i = Range("a65536").End(xlUp).Row To 1 Step -2 If Cells(i, 1).Value = "" Then Rows(i & ":" & i + 1).Delete Shift:=xlUp End If Next i End Sub 大きなお世話とは思いますが、質問中のコード「With」の意味がありません Dim LastRow As Long With ActiveSheet LastRow = .Range("A232").End(xlUp).Row .Range("B1:E" & LastRow).Sort Key1:=.Range("B1"), Order1:=xlAscending End With 使用するとすれば上のようになると思います
その他の回答 (1)
- okdeath
- ベストアンサー率28% (13/46)
こんにちわ 私の個人てきな考えですが、データを扱う上で、結合は非常にあつかいずらいです。 まずは結合をはずした状態ではだめでしょうか? 結合せずにデータはデータとして、一行づつもっていたほうが加工がしやすいです。 見にくい場合は、このデータを元に別ページに表示用を作ります(ピボットテープが便利です。) まずは、1行目にスペースをあけます。 次に各セルに必要な計算式を入れます。 F2 : =+F1+1 G2 : =IF(H2="",1,0) H2 : =IF(AND(B2<>"",$C2<>""),B2,IF(AND(B2="",$C2<>""),H1,"")) I2 : =C2 J2 : =D2 K2 : =IF(AND(E2<>"",$C2<>""),E2,IF(AND(E2="",$C2<>""),K1,"")) この2行目の式を3行目以降にコピペしてください。 ↓このようになります。 A B C D E F G H I J H 1 2 かわ 100 AAA やま 1 0 かわ 100 AAA やま 3 200 BBB やま 2 0 かわ 200 BBB やま 4 空白 空白 3 1 0 0 5 空白 空白 4 1 0 0 6 うみ 111 CCC たに 5 0 うみ 111 CCC たこ 7 222 DDD たに 6 0 うみ 222 DDD たこ 次に全体をコピー、全体に値貼り付けし、式を消します。 並べ替えの前にセルの書式設定で結合をはずしてください。 優先第一G列昇順 第二F列昇順で並べれべ空白がうまります。 最後に不要な列は消してください。 表示がうまくいかず見づらいですがこんなんでどーでしょーか?
お礼
okdeathさん、早速の回答ありがとうございました。
補足
okdeathさん、早速の回答ありがとうございます。 結合をはずした状態には出来ませんのです。 一旦、結合を解いた後に再度結合する。 元の表示形態(結合された状態)に戻すことは出来ないでしょうか。
お礼
hige_082さん、ありがとうございます。 解決しました。