1335438524 Excelで、添付画像のように、配置を変えたいです。


A列の数字に該当する行へ移動させたいです。(該当がないところは歯抜けをつくる感じです。)

A列の数値はユニークで昇順で並んでいます。

実際には数万レコードあります。
Excelだけでやりくりできると嬉しいです。

どうぞよろしくお願い致します。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/04/26 20:08:57
  • 終了:2012/05/03 20:10:03

回答(2件)

id:hokuraku No.1

hokuraku回答回数530ベストアンサー獲得回数972012/04/26 23:53:24

ポイント50pt

力技で美しくないですが…。
※図はoffice2000なのでお持ちのものと見た目が違う可能性があります。

1A列の最後の数字(図で言うならば10)の下に、1,2,3…と最大値-1まで数字を並べる。オートフィルを使うと便利。f:id:hokuraku:20120426234931j:image
2全体を選択してA列で昇順に並び替えるf:id:hokuraku:20120426234932j:image
3A列の前に1列挿入して、新A2に=if(B2=B1,1,0)の式を入れる。同じものを際下段までコピー。これもオートフィルで。f:id:hokuraku:20120426234933j:image
41行目にオートフィルタを設定し、C列を空白セルのみでフィルタf:id:hokuraku:20120426234934j:image
5さらにA列を「1」でフィルタf:id:hokuraku:20120426234935j:image
6フィルタ後の2行目から下の行を削除し、A列、C列のフィルタを解除f:id:hokuraku:20120426234936j:image
7A列を削除。最後に1行目だけずれてないか確認してください。f:id:hokuraku:20120426234937j:image
id:hokuraku

失礼、歯抜けにするんでしたね。
7のあとB列を空白のみでフィルタをかけ、A列を選択しデリートキーでクリア、B列のフィルタを解除すればできあがりです。

2012/04/26 23:57:05
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912012/04/27 20:17:17

ポイント50pt

マクロを使って新規シートに展開する例です。
A列が数値でなかったり、行の有効範囲外の場合はコピー対象外になります。

Sub MoveToNumRow()
    Dim srcWS As Worksheet
    Set srcWS = ActiveSheet
    srcWS.Copy
    
    Dim dstWS  As Worksheet
    Set dstWS = ActiveSheet
    dstWS.Cells.Clear
    
    Dim lastRow As Long
    lastRow = srcWS.Cells(Rows.Count, "A").End(xlUp).Row
    Dim mRow As Long
    Dim r As Long
    For r = 1 To lastRow
        mRow = CLng(srcWS.Cells(r, "A").Value)
        If mRow >= 1 And mRow <= Rows.Count Then
            srcWS.Rows(r).Copy Destination:=dstWS.Rows(mRow)
        End If
    Next
End Sub

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません