はじめての親子ハイキングに挑戦!! >>

部門 コード 商品名 業者 単位 分類 出数 原価 直営 単価差益

 3    1   油   油屋    缶  油    1  500  550  50
 3    2   水   水屋  リットル  水   1  500  550  50
 3    5   栗   栗屋    kg  野菜   1  500  550  50
 3    8   筍   筍屋    kg  野菜   1  500  550  50

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上の図を下の図の様に歯抜けになっている番号を入れたいのですが、地味な作業で入れていくにはかなりの量がありまして、何か良い方法がありましたら教えてください。

部門 番号 コード 商品名 業者 単位 分類 出数 原価 直営 単価差益

 3   1   1   油   油屋    缶  油    1  500  550  50
 3   2   2   水   水屋  リットル  水   1  500  550  50
     3   
     4 
 3   5   5   栗   栗屋    kg  野菜  1  500  550  50
     6
     7 
 3   8   8   筍   筍屋    kg  野菜  1  500  550  50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

このQ&Aに関連する最新のQ&A

A 回答 (3件)

VBAを使います。


「フォーム」のツールバーからボタンを選択して好きなところにボタンを貼り付けます。
「マクロの登録」で「新規登録」以下のコードを貼り付けてください。
ワークシートのデータの範囲に、「範囲」という名前を付けます。
ボタンを押せばOK。

-------------------------

Sub ボタン1_Click()
Dim arange As Range
Set arange = Range("範囲")
Max% = arange.Rows.Count
i% = 1
While i% < Max%
If arange.Cells(i%, 2) <> arange.Cells(i% + 1, 2) - 1 Then
arange.Rows(i% + 1).Insert
arange.Cells(i% + 1, 2) = arange.Cells(i%, 2) + 1
Max% = Max% + 1
End If
i% = i% + 1
Wend
End Sub
    • good
    • 0
この回答へのお礼

有難うございます。

ボタンを押したらびっくりしました。

お礼日時:2004/10/11 23:45

先ほどの問題との関係は(逆の質問をしましたね。

関数で
回答しようとしたら締めきられた)。
本質問ですが
Sheet3に空き行の無いデータが入っています。
最下行は第10行と仮定しているので、実際は$B$10や$K$10を修正してください。
A3に
=IF(ISERROR(MATCH(ROW(A3)-2,Sheet3!$B$1:$B$10,0)),"",INDEX(Sheet3!$A$1:$K$10,MATCH(ROW(A3)-2,Sheet3!$B$1:$B$10,0),COLUMN(A3)))
といれ、K3まで複写する。
A3:K3を範囲指定して、K3で+ハンドルを出して下へ引っ張る。
B列には他の列に連番をつくり、その連番をB列に値複写してください。

この回答への補足

有難うございます。

自分が担当している、データじゃないので分りやすいNo3を使用させていただきます。
大変勉強になりました。

補足日時:2004/10/11 23:45
    • good
    • 0

VBAでの対応を想定して回答します。


ただVBAコードが判らないので、
ひとまずはアルゴリズムでの返答になることを
ご了承ねがいます。

前提条件
・コードが存在している場合、番号は同じ値となる。
・同じコードを持つデータは無い。
・コードは既に昇順となっている。
・番号の列は既に追加されている。

----ここから

一番最後の行に行く。
[コード]の値を変数Aに取得する。
do
{
  if(変数Aの値 > [コード]の値)
  {
    下に一行追加。
    //この時、フォーカスが新しい行の
    //[番号]列であって欲しい。。。
  }

  [番号]に変数Aの値を入れる。
  変数Aの値を-1する。

  フォーカスを一行上の[コード]に移す。
}
while(変数Aの値がゼロになるまで)

・おしまい・

----ここまで

こんな感じでしょうか。
    • good
    • 0
この回答へのお礼

有難うございました。
No3が自分にとって画期的だったのでそちらをせんたくすることにしました。
またよろしくお願いいたします。

お礼日時:2004/10/11 23:48

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル 連番が途切れているところに空白行を入れる

1
2
3
4
6

3980
3982

4000といったように続いているのですが,
この4と6や3980と3982の連番が途切れいている間に空白行をいれたいのです.
単体のセルではなく,1行全てに空白を挿入したいのです.

可能でしょうか?

詳しい方,よろしくお願い致しますm(__)m

Aベストアンサー

連番とそれに関するデータが横に並んでいるだけと言う状況なら、
自分だったら他のシートに連続した連番をA列に作成して、その連番と等しい連番のデータを参照して表示させるかな。
その場合、元のデータで抜けている連番は参照するデータが抜けることになるけどね。

データのない行が邪魔なら、
 オートフィルタで空白のある行だけを表示させて
 ジャンプで表示しているセル(アクティブ セル)だけを選択し
 一度に削除(DELキーを押す)
するだけで綺麗になります。

下の図のSheet2のB1セルには
 =IFERROR(VLOOKUP(A1,Sheet1!A:B,2,0))
と数式を入れ、必要な行までコピーしています。

QExcelで連番でない数字を割り出す関数

久しぶりに質問させて頂きます。

Excelのセルに





と、途中まで連番ですが、【5】が抜けているのを
探しだす関数などありますか?
これだけの数なら見ただけでも容易に探せますが、
万単位になると、目で見て探すのでは、時間がかか
りすぎます。
当方は、携帯の修理をしているもので、不具合の出
てしまったお客様の携帯を早く修理・返却したいた
め、便利な関数などありましたら教えて頂けると助
かります。
よろしくお願いします。

Aベストアンサー

たとえば、A1=1、A2=2、A3=3、A4=4、A5=6となっているとして、
B2に「=IF(A2-A1>1,"○","")」と入力して、一番下までセルをフィルすると、
番号が飛んでいるところの横にだけ○印がでます。

状況が良くわからないのですが、この文面からだとこんな感じで大丈夫だと
思うんですが。。。

QEXCELで通し番号の行に欠番有りの番号の行を照応させる方法を教えてください。

WindowsXPのOffice 2003を使用しています。

EXCELで以下のような表があるとします。

001 リンゴ 300円
003 みかん 150円
004 スイカ 500円
006 メロン 900円
008 プラム 400円
009 レモン 100円

一番左の列は品番のようなものです。それぞれに商品名と料金などの付随する情報があります。

現在品番は欠番があって数字が飛んでいます。これに対して、欠番のない通し番号の列を新規に作り、以下のように品番が通し番号と同じ数字の行に自動で並ぶようにしたいのです。

001 001 リンゴ 300円
002
003 003 みかん 150円
004 004 スイカ 500円
005
006 006 メロン 900円
007
008 008 プラム 400円
009 009 レモン 100円


実際には通し番号は6桁になるため、かなり膨大な量の商品があると考えてください。

当方、マクロについては詳しくありません。なるべく簡単な方法で解決できる方法がありましたらご教授ください。マクロを使った方法の場合、お手数ですがどのようにそのマクロを設定したらいいかまで具体的に1からご指導いただけるととても助かります。

よろしくお願いします。

WindowsXPのOffice 2003を使用しています。

EXCELで以下のような表があるとします。

001 リンゴ 300円
003 みかん 150円
004 スイカ 500円
006 メロン 900円
008 プラム 400円
009 レモン 100円

一番左の列は品番のようなものです。それぞれに商品名と料金などの付随する情報があります。

現在品番は欠番があって数字が飛んでいます。これに対して、欠番のない通し番号の列を新規に作り、以下のように品番が通し番号と同じ数字の行に自動で並ぶようにしたいのです。

001 001 リンゴ 300円
00...続きを読む

Aベストアンサー

いろいろ方法はあると思いますが。ご質問の例を使って書きます。
まず、最初の欠番のある表をちょっと離れたk列あたりから作ります。
ですからKに品番、Lに品名、Mに価格となるようにします。(例では6行ですので表はH1からM6になります)
そして、A列に001から009まで縦に番号を付けます。その後、B1セルに
=IF(ISERROR(VLOOKUP($A1,$K$1:$M$6,1,FALSE)),"",VLOOKUP($A1,$K$1:$M$6,1,FALSE))として縦にコピー、C1セルに=IF(ISERROR(VLOOKUP($A1,$K$1:$M$6,2,FALSE)),"",VLOOKUP($A1,$K$1:$M$6,2,FALSE))として縦にコピー、D1セルに=IF(ISERROR(VLOOKUP($A1,$K$1:$M$6,3,FALSE)),"",VLOOKUP($A1,$K$1:$M$6,3,FALSE))として縦にコピーとすればできると思いますよ

Qエクセルで飛び飛びの日付をきちんと補完して並べ直すには?

こんにちは。お世話になります。
エクセルの並び替えに関して質問です。

例えば下記のような情報があったとします。

日付        値
2007/12/7    1
2007/12/9    4
2007/12/11    3


こちらを、このように飛び飛びになっていた日付を補完して
値に0を入れることは可能でしょうか?

日付        値
2007/12/7    1
2007/12/8    0
2007/12/9    4
2007/12/10    0
2007/12/11    3


現在は原始的に目視して、空いている日付に行を挿入して
ひとつひとつ0を入力しております。
処理する数が多いので、これが自動で出来たらどんなに効率が
良いだろう、、と思い初めて質問させて頂きました。

お詳しい方、ご助言頂けますと幸いです。
なにとぞよろしくお願い致します。

Aベストアンサー

Sheet1にA1:B4
日付計数
2007/12/7  1
2007/12/9  4
2007/12/11  3
ーー
別シート(Sheet2とする)A2に2007/12/7のような最初日を入れる。
プラスハンドルを出して、下へ引っ張る。
すると簡単に連続日が入る。
そしてB2に
=IF(ISERROR(MATCH(A2,Sheet1!A:A,0)),0,INDEX(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)))
結果
日付計数
2007/12/7   1
2007/12/8   0
2007/12/9   4
2007/12/100
2007/12/113
2007/12/120
2007/12/130
2007/12/140
2007/12/150
ーー
日付はエクセルでは、セルの値は、日付シリアル値という整数値
なので、そのつもりで、恐れないこと。

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

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

Aベストアンサー

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

Q初心者なのですが・・・accessで抜けている番号を探すには?

すみません。検索してみたのですが見つからなくて・・・ぜひ教えてください。
使っているのは、ACCESS97です。
ある伝票の整理番号が連番になっています。データは入力されています。
抜けている整理番号を調べたいのですが、どういった方法があるでしょうか?
クエリーでもできるでしょうか?
困ってしまってますので、なにとぞよろしくお願いします!

Aベストアンサー

こんにちは。

>で、せっかくなので実際やってみてからお返事したい!と思ってぺたぺた張ってみたりしたのですが、
>どうもうまくできなくて・・・
>何しろ初めてなので、何もわからなくって。

ごめんなさい。よく質問を読んでいませんでしたのでとんちんかんなレスをしたかもしれません。
どんなエラーが出るかによりますが、

「パラメータが少なすぎます。? を指定してください。」
と出た場合は「ID」と書いている全ての文字を「整理番号」に変更してみてください。
>StSQL = "select 整理番号 from テーブル1 order by 整理番号"
>If RS!整理番号 = i Then
上記3カ所

「入力テーブルまたはクエリ '???' が見つかりませんでした。そのテーブルやクエリが存在していること、
または名前が正しいことを確認してください。」
と出た場合は、テーブル名が違っていますので以下の「テーブル1」の部分を修正してください。
>StSQL = "select 整理番号 from テーブル1 order by 整理番号"

それ以外のエラーが出る場合は補足に書いてください。

あと、この方法では、大量に抜けているデータが存在する場合は、取得したデータをテーブルに書き込むなどの工夫が必要です。

#3のstorkさんが回答した方法等で解決しているのであれば、こんなやり方もあるんだ、くらいに思ってください。

こんにちは。

>で、せっかくなので実際やってみてからお返事したい!と思ってぺたぺた張ってみたりしたのですが、
>どうもうまくできなくて・・・
>何しろ初めてなので、何もわからなくって。

ごめんなさい。よく質問を読んでいませんでしたのでとんちんかんなレスをしたかもしれません。
どんなエラーが出るかによりますが、

「パラメータが少なすぎます。? を指定してください。」
と出た場合は「ID」と書いている全ての文字を「整理番号」に変更してみてください。
>StSQL = "select 整理番号 f...続きを読む

Qエクセルで連続している数字について

エクセルで質問です。
A列に連続して並んでいる数字の中に、
歯抜けになっている数字があります。
例)
1
2
3
5
9
10
11
13




抜けている数字の箇所に空白のセルを挿入したいのですが、
どうすれば良いのでしょうか?
初歩的な質問ですいません。
宜しくお願い致します。

Aベストアンサー

最大数が10000とする。かつ重複なし。

B1からB10000に連続番号1-10000を記入する。下記。
B1=1としB1を選択、編集>フィル>連続データ 範囲は「列」停止値「10000」。

C1=IF(COUNTIF(A:A,B1)=1,B1,"") フィルハンドルをダブルクリック。
C列が目的のもの。

___A__B__C
1__1__1__1
2__2__2__2
3__4__3
4__7__4__4
5__8__5
6_10__6
7_____7__7
8_____8__8
9_____9
10___10_10

Qexcelで欠番を探す方法

excelで欠番を探す方法

3ケタの数字(例;100~199)の数字をランダムに入力し昇順に並び変えた時に
欠番を表示させる方法をご存じないでしょうか?
※欠番を赤など色を変えて表示出来ればなおよしです。

初心者なので難しいことは分りませんが、どうぞ宜しくお願いします。

Aベストアンサー

次の情報が参考になると思います。いろんな方法がありますが、適宜取捨選択下さい。

参考URL:http://soudan1.biglobe.ne.jp/qa1034895.html

Q任意の整数まで欠番行を挿入するマクロは?

エクセルのSheet1のA列の1行目から下の行へ1から1000まで数字(整数)が入っているとします。ただし、欠番があります。そこで、欠番を挿入して行を増やしたいのですが、すべての整数を挿入するには以下のマクロで解決しているのですが、任意の整数(下二桁が同じ整数)まで挿入したら次の桁へ飛んで、また同じ任意の整数(下二桁が同じ整数)まで来たら次の桁へ飛んでという具合に、これらを繰り返したいのです。例えば、1から46まで、100から146まで、200から246まで、300から346までという具合です。どなたかご教授よろしくお願いします。


Sub 欠番挿入()

Dim i As Integer

i = 0
Do Until ActiveSheet.Range("a2").Offset(i, 0).Value = ""

ActiveSheet.Range("a2").Offset(i, 0).Activate

If ActiveCell.Value <> ActiveCell.Row Then
Rows(ActiveCell.Row).Insert
ActiveSheet.Range("a2").Offset(i, 0).Value _
= ActiveCell.Row
End If

i = i + 1
Loop

End Sub

エクセルのSheet1のA列の1行目から下の行へ1から1000まで数字(整数)が入っているとします。ただし、欠番があります。そこで、欠番を挿入して行を増やしたいのですが、すべての整数を挿入するには以下のマクロで解決しているのですが、任意の整数(下二桁が同じ整数)まで挿入したら次の桁へ飛んで、また同じ任意の整数(下二桁が同じ整数)まで来たら次の桁へ飛んでという具合に、これらを繰り返したいのです。例えば、1から46まで、100から146まで、200から246まで、300から346ま...続きを読む

Aベストアンサー

> 100までは49までの欠番が挿入され、100以上は何も変化がありませんでした。

質問では46まででしたし、テストが甘かったみたいで、ちゃんと動かなかったですね。
以下のように変更してみてください。

Sub 欠番挿入()

Dim i As Integer, myAnyValue As Integer

myAnyValue = 46

For i = 0 To 999
If ActiveSheet.Range("a1").Offset(i, 0).Value = "" Then
Exit Sub
End If
ActiveSheet.Range("a1").Offset(i, 0).Activate
If i <> 0 Then
If ActiveCell.Value - ActiveCell.Offset(-1, 0) <> 1 _
And ActiveCell.Offset(-1, 0).Value < myAnyValue Then
Rows(ActiveCell.Row).Insert
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
End If
If i = myAnyValue Then
myAnyValue = myAnyValue + 100
i = Int(myAnyValue / 100) * 100 - 1
End If
Next

End Sub

> 100までは49までの欠番が挿入され、100以上は何も変化がありませんでした。

質問では46まででしたし、テストが甘かったみたいで、ちゃんと動かなかったですね。
以下のように変更してみてください。

Sub 欠番挿入()

Dim i As Integer, myAnyValue As Integer

myAnyValue = 46

For i = 0 To 999
If ActiveSheet.Range("a1").Offset(i, 0).Value = "" Then
Exit Sub
End If
ActiveSheet.Range("a1").Offset(i, 0).Activate
If i <> 0 Then
If ActiveCell.Value - Ac...続きを読む

Qアクセスで「空き番」の確認

Access2000を使用しています。
オートナンバー型でないフィールドで、入力の
際にdmaxを使用して連番を振っているのですが、
登録されているデータに関して、空き番がない
かどうかを確認したいのですが何か方法はあるでしょうか?
(登録されているレコード数は約三万件ですので目で確認
 するだけではきついので・・・・)
何か良い方法があるようなら教えてください。
よろしくお願いします。

Aベストアンサー

次の条件で VBAを作りました。
 ◎テーブル名 = テーブル1
 ◎連番のフィールド名 = ID とし
 ◎連番は後から入力した数値が
  先に入力した数値より
  小さくなることは無い。
  (dmaxを使用しているので大丈夫かと思いますが)


Sub test()
Dim Db As Database
Dim Rs As DAO.Recordset
Dim Temp As String
Dim I As Integer

Set Db = CurrentDb()
Set Rs = Db.OpenRecordset("テーブル1")

Rs.MoveFirst
I = 1
Temp = ""
Do Until Rs.EOF = True
Do While I < Rs!ID
Temp = Temp & " " & I
I = I + 1
Loop
Rs.MoveNext
I = I + 1
Loop
Rs.Close
Set Rs = Nothing
Db.Close
Set Db = Nothing
MsgBox "次の数字が抜けています。" & vblf & Temp
End Sub

次の条件で VBAを作りました。
 ◎テーブル名 = テーブル1
 ◎連番のフィールド名 = ID とし
 ◎連番は後から入力した数値が
  先に入力した数値より
  小さくなることは無い。
  (dmaxを使用しているので大丈夫かと思いますが)


Sub test()
Dim Db As Database
Dim Rs As DAO.Recordset
Dim Temp As String
Dim I As Integer

Set Db = CurrentDb()
Set Rs = Db.OpenRecordset("テーブル1")

Rs.MoveFirst
I = 1
Temp = ""
...続きを読む


人気Q&Aランキング