プロが教えるわが家の防犯対策術!

A1からEE1000ほどの範囲(量?)のある表の抜けている行を自動追加したいのですが
エクセルに疎く、解決方法がわかりません。
どうか教えていただけますでしょうか?

通し番号 商品名  購入日   購入者 理由  満足度 ・・・・
1   りんご  2019/5/1  田中  昼食  満足 ・・・
2   みかん  2019/5/2  高橋  おやつ  不満・・・
5   アイス  20194/25  斎藤  朝食  満足・・・
8   大福  2019/3/15  遠藤   おやつ  どちらでもない・・・
10

通し番号 商品名  購入日   購入者 理由  満足度 ・・・・
1   りんご  2019/5/1  田中  昼食  満足 ・・・
2   みかん  2019/5/2  高橋  おやつ  不満・・・


5   アイス  20194/25  斎藤  朝食  満足・・・


8   大福  2019/3/15  遠藤   おやつ  どちらでもない・・・



と通し番号が飛び飛びのところを 空白行にしてそろえたいのですが
行も列も大量のため どうしていいか行き詰ってしまいました。
どなたか解決方法を教えていただけますか?

よろしくお願いいたします。

A 回答 (7件)

データが入っているA列の下に抜けている番号だけを下に書き出していって、A列の昇順で並べ替えすればいいのでは?

    • good
    • 0
この回答へのお礼

No.1様 
さっそくのご回答ありがとうございます。
確かにその方法でも行けそうですが 行が300からシートによっては500あり
一つ一つ(一行一行?)何が抜けているか見ながらの作業になりますよね?
それですと 一行づつマウス右クリックで行の挿入と作業は変わらないかと

関数かなにかで一発で完成! が理想なのですが・・・
なにか方法はないでしょうか?

お礼日時:2019/05/09 12:39

こんにちは



方法はいろいろ考えられると思いますので、以下は関数を利用した一例です。

※ 元のデータがあるシートを「Sheet1」とします。

別のシートに成形したデータを作成することにして、そのシートのA2セルに
 =IFERROR(IF(COLUMN(A1)=1,ROW(A1),VLOOKUP(ROW(A1),Sheet1!$A$1:$EE$1000,COLUMN(A1),0)),"")
の式を入力します。
このA2セルを選択状態で、必要な範囲まで右方、下方にフィルコピーします。

以上で、お求めのような表示結果になるのではないかと思います。

上記では、セルの値は関数式で参照した内容となっていますが、これを実際の値として固定させたいような場合は、セル全体を選択状態にして、
 「コピー」→「値をペースト」
の操作を行うことで、値として固定することも可能です。
    • good
    • 0
この回答へのお礼

fujillin様
早速のご回答ありがとうございました。
お返事が遅くなり大変失礼いたしました。
早速やってみます!

お礼日時:2019/05/10 10:32

私だったら、データがあるA列の下にまず1からすべての連番を必要数入力し、同行の空いているセルにでもCOUNTIFでデータが入っている通し番号を数えていき通し番号とかぶっていないセルを判別したら被っている行をオートフィルタで抜き出してから行削除しそれから並べ替えします。


工夫すればどうとでもなりますよ。
    • good
    • 0
この回答へのお礼

chanami様
早速のご回答ありがとうございました。
お返事が遅れまして大変失礼いたしました。
なるほど、シンプルですね!
早速やってみます。

お礼日時:2019/05/10 10:34

・別のシートのA列に上から順に1~1000(最終となっている連番まで)の番号を振る。



・上のシートB列に、VLOOKUP関数を入れてA列連番と元シートの連番でマッチさせ、元シートのどこかの列の値を入れる。

・B列を値に直して、#N/Aになっている行を削除し、残った行を全部、元シートの後ろへ追加(連番以外は一括クリアしておいてから)

・元シートを連番順にソートする。
    • good
    • 0
この回答へのお礼

t_fumiaki様
早速のご回答ありがとうございました。
お返事が遅くなりまして大変失礼いたしました。
早速やってみます!
追伸:fumiaki様、家族に同じ名前がいるので一瞬ドキッとしました 笑

お礼日時:2019/05/10 10:37

No4 逆だった



・別のシートのA列に上から順に1~1000(最終となっている連番まで)の番号を振る。

・上のシートB列に、VLOOKUP関数を入れてA列連番と元シートの連番でマッチさせ、元シートのどこかの列の値を入れる。

・B列を値に直して、#N/Aになっている行を残し、それ以外の行を削除

・#N/Aの行だけ残るから、連番を残してB列を削除

・それを元シートの最後以下へコピー

・元シートを連番順にソートする。
    • good
    • 0

添付図だけで、分かるッしょ!?


G2: =COUNTIF(A$2:A2,A2)
[並べ替え]、[オートフィルタ]、G列が1を超えるレコードを抽出、抽出された行削除、
テな具合でッす。
ゴチャゴチャ説明不要!
「抜けている行を追加したい」の回答画像6
    • good
    • 1
この回答へのお礼

mike_g様
早速のご回答ありがとうございました。
お返事が遅れまして大変失礼いたしました。
シンプルかつ分かりやすい添付をありがとうございました。
ビジュアルで確認しながら読むととても分かりやすくて大変助かりました!
早速やってみます!

お礼日時:2019/05/10 10:38

こんにちは!



手っ取り早く、VBAでの一例です。

Sub Sample1()
 Dim i As Long, myMax As Long
 Dim c As Range
  myMax = WorksheetFunction.Max(Range("A:A"))
  Application.ScreenUpdating = False
   For i = 1 To myMax
    Set c = Range("A:A").Find(what:=i, LookIn:=xlValues, lookat:=xlWhole)
     If c Is Nothing Then
      Cells(Rows.Count, "A").End(xlUp).Offset(1) = i
     End If
   Next i
    Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes
  Application.ScreenUpdating = True
   MsgBox "完了"
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

tom04様
早速のお返事ありがとうございました。
お返事が遅れまして大変失礼いたしました。
wow...主様はプログラマーでいらっしゃいますか?(←素人ゆえ浅はかな発想ですみません)
し、素人には難解でございました。。。
もっと勉強しておきます。
でも、こちらのご回答がまた誰かのお役に立てますように!^。^

お礼日時:2019/05/10 10:41

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

このQ&Aを見た人はこんなQ&Aも見ています