- ベストアンサー
サイズの違うセル 並べ変え
違うサイズのセルを並べかえで同時に動かす。 当然エラーがでますが、何か良い案お持ちの方助けてください。 A B C 1 東 1/27 あああああああああ 2 京 111111111111 3 都 かかっっかかかかk 東京都と1/27のセルは3つを結合 C以降は 結合無し 例えば Bを日付で並べかえたい。 Cの三行も同時に移動させたいのですが、結合はできないのです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
並べ替えはデータベース機能なので、データーベース形式にのっとった形式にしなくてはいけません。 よって、印刷時などの見栄えを整えるための「セルの結合」は、使わないことです。 つまり、1件のレコードは1行に書く A B C D E 東京都 1/27 あああああああああ 111111111111 かかっっかかかかk 並び替えを行うためには、A・B列の結合を解く必要があり、 「その結合を解いてよいなら」妙案が出るかもしれません。 (推奨しないが)下記のような形 A B C 東京都 1/27 あああああああああ 東京都 1/27 111111111111 東京都 1/27 かかっっかかかかk
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
基本的に並べ替えは、すべての列が同じレイアウト(結合セルがある場合は同じ結合セル)になっていないと実行できません。 例示のデータで日付欄で並べ替えたいなら以下のような手順が最も簡単な操作だと思います。 日付またはA列の結合セルの範囲を選択して、右クリック「コピー」、C列のデータ範囲を選択して右クリック「形式を選択して貼り付け」で「書式」にします。 これでC列にはデータが残ったまま結合セルの状態になりますので、B列の日付で並べ替えることができます。 並べ替えた後で、C列を選択して、右クリック「セルの書式設定」の配置タブで「セルを結合する」のチェックを外します。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 並び替えは行単位になってしまいますので、行によって結合あり・なしでは難しいと思います。 そこで方法として (1)セルの結合を解除 (2)空白セルに一つ上のデータを入力 (3)B列の昇順で並び替え (4)A・B列の3行おきに2番目・3番目のセルをクリア (5)A・B列を3行ずつセルの結合 という操作をVBAでやってみました。 データは1行目からあるとします。 画面左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Columns("A:B").UnMerge Application.ScreenUpdating = False For i = 1 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(i, 1) = "" Then Cells(i, 1) = Cells(i - 1, 1) Cells(i, 2) = Cells(i - 1, 2) End If Next i i = Cells(Rows.Count, 1).End(xlUp).Row j = Cells(1, Columns.Count).End(xlToLeft).Column Range(Cells(1, 1), Cells(i, j)).Sort key1:=Cells(1, 2), order1:=xlAscending For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 3 Range(Cells(i + 1, 1), Cells(i + 2, 2)).ClearContents Range(Cells(i, 1), Cells(i + 2, 1)).Merge Range(Cells(i, 2), Cells(i + 2, 2)).Merge Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 尚、一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。 無理矢理って感じのコードです。m(_ _)m
- keithin
- ベストアンサー率66% (5278/7941)
エラーになるのはセル結合しているから「ではありません」ので, 方法1:結果を出せる一番簡単な方法 既に気付いているとおり,例えばC列もC1:C3を結合して あああALT+Enter 111ALT+Enter かかか としてデータを記入すれば,ABC列をB列基準で並べ替えできます。 「結合できない」と無い物ねだりするのなら,出来ないと諦めるしかありませんが,出来ない理由を解決するご相談を別途出してみるのも良い方法かもしれません。 方法2:セル結合したくないけど結果も欲しいなら (ご質問で書かれているようにリストのタイトル行も用意していないレイアウトで) D列に D1: =B1 D2: =B1 D3: =B1 と入れてD1:D3をリスト下端までコピーし, CD列をD列昇順で並べ替え(先頭行をデータと指定して並べ替えること) AB列をB列昇順で並べ替える と出来ます。