• ベストアンサー

エクセルで欠番を見付けるには

 エクセルで、連番の付いたデータを処理するとき、何番が欠番かを発見して、その番号をピックアップする方法を教えていただけますか。

  • JZ302
  • お礼率92% (1106/1202)

質問者が選んだベストアンサー

  • ベストアンサー
  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.3

A列に番号があるとして、C列に欠番の無い列を作ります。(フィルで連番を作る。) D列に=vlookup(C1,A:A,1,FALSE)とし、下へコピー 欠番は#N/Aが表示されます。

JZ302
質問者

お礼

ありがとうございました。よくわかりました。D列の下への複写はC列と同じ長さだけすればいいのですね。

その他の回答 (7)

  • beer55
  • ベストアンサー率33% (7/21)
回答No.8

お晩です。 A列に連番が入力されていることして 空き列に=IF(ISERROR(ADDRESS(A1,1,1,TRUE)),"A"&ROW(),"") ではどうですか

JZ302
質問者

お礼

ありがとうございました。うまくいかなかったのですが・・・。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

空き列をD列とします。 番号がA列A1:A100に入っているとします。 D1に=IF(ISERROR(MATCH(ROW(D1),$A$1:$A$100,0)),ROW(D1),"")といれ、下へ複写します。 欠番は数字が現れます。 1200-1300までの欠番の場合はROW(D1)+NのNを調整してください。この場合はROW(D1)+1199に修正する。 D1に=IF(ISERROR(MATCH(ROW(D1)+1199,$A$1:$A$100,0)),ROW(D1)+1199,"") その後値をD列自身に複写し、D列をソートすれば飛び飛びがまとめられる。

JZ302
質問者

お礼

ありがとうございました。D列に複写するときA列よりも長く下へ複写しなければなりませんね。A列が1000くらいまでは最初の式でいいのでしょうか。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#4です。少し単純な別解。 空き列(A列とする)に問題の番号列をソートするとする。 その後 Sub test03() i = 0 j = 0 p01: i = i + 1 ak = Cells(i, "A") p02: j = j + 1 bk = j If ak = bk Then GoTo p01 End If If ak > bk Then MsgBox j & "番なし" GoTo p02 End If If ak < bk Then End End Sub jはスタート番号の-1の数字をセットする。 文字列の場合は、BKの文字列化のため修正が必要。

JZ302
質問者

お礼

ありがとうございました。ちょっと私には複雑すぎるようです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

VBAでやってみました Public Sub missingNo(r as range) Dim b As Range Dim i As Integer Set b = r.Item(1) For i = 1 To r.Rows.Count - 1 x = ripper(b.Offset(i - 1, 0).Value) y = ripper(b.Offset(i, 0).Value) If Abs(x - y) > 1 Then MsgBox b.Offset(i - 1, 0).Value & "と" & b.Offset(i, 0).Value & "の間が欠番です", vbOKOnly, "欠番" End If Next End Sub Public Function ripper(s As String) As String '数字以外を取り除く ripper = "" s = StrConv(s, vbNarrow) For i = 1 To Len(s) c = Mid(s, i, 1) If ("0" <= c And c <= "9") Then ripper = ripper + c End If Next End Function ' call missingNo(range("A1:A17")) のように使います

JZ302
質問者

お礼

ありがとうございました。VBAは、私にはまだ無理のようです。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VBAでやって見ました。 Sub test01() s = InputBox("最初、最後") 'カンマで区切って t = Split(s, ",") For i = t(0) To t(1) Set f = Range("A1:A100").Find(What:=i, After:=Range("A1"), LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False) If f Is Nothing Then MsgBox i End If Next i End Sub (データ) 1 2 3 5 6 7 8 9 11 12 15 で4、10,13,14が指摘できます。 番号が文字列である場合は Sub test01() s = InputBox("最初、最後") '数字だと思って指定のこと t = Split(s, ",") For i = t(0) To t(1) Set f = Range("A1:A100").Find(What:=Format(i, "0000"), After:=Range("A1"), LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False) If f Is Nothing Then MsgBox Format(i, "0000") End If Next i End Sub などのように修正が必要で、文字を含んでいるA1234などの 場合はVBAのことが判らないと修正が難しいかと。

JZ302
質問者

お礼

ありがとうございました。VBAは、私にはまだ無理のようです。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

A列に連番が入っているとして、 空いている列の1行目(例えば セル E1)に =MATCH(ROW(),A:A,0) と入れるとA列で「1」がある行が表示されます。 つまり「行番号」を検索値としていますので、「#N/A」が出る行番号が欠番という事です。 65536までしか使えないけど、、、

JZ302
質問者

お礼

ありがとうございました。うまくいかなかったのですが・・・。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

どういう番号でしょう? 1 2 4 5 という感じで数字のみでしたら、 番号をソートし、右列にでも =a2-a1 と入力し、データ分だけ貼り付けし、(オートフィル? でもOK) 更に条件付き書式で1以外は赤く表示する、 とすればいいかと思います。 マクロで検索する(Findメソッド)、という手もあり ますが・・・。

JZ302
質問者

お礼

ありがとうございました。。データ分だけ貼り付けして、A列と見比べながらやるといいかもしれません。

関連するQ&A

  • エクセルの欠番

    エクセルのオートフィルで番号を返します。1.2.3.4.---と続くとして3の項目が要らなくなったので、削除するとします。すると、番号を欠番になりますが、その欠番をなくし、1.2.3.4.----となるようにしたいのです。教えてください。

  • excelで欠番を探す方法

    excelで欠番を探す方法 3ケタの数字(例;100~199)の数字をランダムに入力し昇順に並び変えた時に 欠番を表示させる方法をご存じないでしょうか? ※欠番を赤など色を変えて表示出来ればなおよしです。 初心者なので難しいことは分りませんが、どうぞ宜しくお願いします。

  • 永久欠番でしょうか?

    ここ三年間、ダイエーホークスに背番号15をつけた選手はいなかった気がします。 その前にホークスで15番をつけていた選手は誰だったかというのは知ってます…今回のリーグ優勝の胴上げの際にも15番をつけたハリー人形の姿がありましたよね。 彼以降15番の選手が出てきてないのは、球団側が「彼は引退宣言していない。だから彼は永遠にホークスの背番号15なんだ」ということで「永久欠番」にしたのかなと推測してるんですが… 実際のところダイエーホークスの背番号15は「永久欠番」になってるんでしょうか?「…だと思う」といった回答でもいいんで教えて下さい。

  • ヤンキース背番号「6」は永久欠番になるのか?

    ヤンキース・ジーター選手が、今季限りで現役を引退する。 彼のチーム貢献度を見れは、つけている背番号「2」番は永久欠番になるだろう。 ではトーリ元監督がつけていた背番号「6」番は、どうなるのだろうか? もし6番も永久欠番になれば、ヤンキースは背番号1ケタ番号は全て永久欠番になるが。

  • エクセルを使った採番システムの構築をしているのですが欠番がでたとき

    エクセルを使った採番システムの構築をしているのですが欠番がでたとき その番号についてとれないようにしたい時、また表示の仕方はどうしたらよいですか? やっぱりマクロ機能を使わないと難しいですかね?

  • エクセルシートで

    教えて下さい。 エクセルでオートフィルターをかけているデータ-に別のファイルのデータを貼り付けるにはどう処理をすればいいですか? オートフィルターをかけているので左端の番号が連番になっていない為1個しか貼り付けれません。 いい方法があれば教えて下さい。

  • 永久欠番をつけている選手がいる

    メジャーリーグでは、初の黒人選手ジャッキー・ロビンソン氏を称えて、彼がつけていた背番号42番を、全球団共通の永久欠番にした。 それなのに、ニューヨーク・ヤンキースのマリアーノ・リベラ投手は、その42番をつけている。 これはいったいどういう事なのか?

  • MLBの全球団の1番から40番迄の背番号の中で28番と38番だけ永久欠番が無いのは何故ですか?

    MLBの全球団の1番から40番迄の背番号の中で28番と38番だけ永久欠番が無いのは何故ですか? NPBと比べてMLBは永久欠番の数が多いので、この2つの番号だけまだ欠番の選手が現れていないのは意外だと思いました。 偶々だと言われればそれまでですが、理由を御存知の方は御回答を宜しく御願い致します。

  • エクセルで「4」「9」抜けの連番を振りたい

    エクセルで1から2000までの連番を, 「4」と「9」を抜いて自動作成する方法はないでしょうか。 40番代,400番代なども,飛ばして作成したいのですが。 番号は,各セルに1個ずつ振ります。

  • エクセルで複数ずつの連番を入力する方法

    こんにちは。 エクセル初心者です。 過去ログや他のサイトも調べたのですが、表現方法が悪いのかヒットしません。 今、エクセルに日本語を入力して表を作っています。 A列に数字を入れて番号を振っているのですが、 表の性質上、1234・・・という連番ではなく、 111222333444・・・という同じ数字が3つずつ続く連番です。 それが800番まで続きます。 私が調べた限りではオートフィルや連続データではそういう番号の振り方はできないみたいで困っています。 今、50番台なのですが、手動で入れるのが苦痛になってきました。 初心者でも出来る方法で、これを自動的に大量入力する方法があれば、 ぜひ実行したいのです。どなたかご存知ではないでしょうか? よろしくおねがいします。

専門家に質問してみよう