ここから本文です

エクセル2013です。 連番打ちで悩んでいます。 A列の1行目~100行目ま...

kay********さん

2016/7/2522:08:46

エクセル2013です。
連番打ちで悩んでいます。

A列の1行目~100行目までに連番を打ちたいのですが、途中で何度か
黄色に色付けた行があり、そこは「小計」欄なので、連番をふりたくないです。

何か、「色をつけた行、以外に連番を付ける」もしくは、「小計」と文字が入っている列には
番号を飛ばす。という関数はないでしょうか?

閲覧数:
210
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

2016/7/2606:39:39

SUBTOTAL関数・・・


小計はSUM関数ではなくSUBTOTAL関数で出しておきます。SUBTOTAL関数で集計するとSUBTOTAL関数の入ったセルを飛ばして集計します。つまり小計の入ったセルはその列では計算外になります。


サンプル
B列が集計列で
B6
=SUBTOTAL(9,B2:B5)
B9
=SUBTOTAL(9,B7:B8)
B15
=SUBTOTAL(9,B10:B14)
と入っているとします。


C2
=IF(A2="小計","",SUBTOTAL(3,B$2:B2))
下にコピーします。





※「=SUBTOTAL(9,~」は合計
「=SUBTOTAL(3,~」はデータの数、になります。


またE2
=SUBTOTAL(9,B:B)
で小計行を飛ばした総合計が出ます。

SUBTOTAL関数・・・...

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

kei********さん

2016/7/2608:32:43

kayotgwさん、こんにちは。。

途中に「色のついたセル」や同列や離れた列に「小計」の文字があるときは、連番をとばす。
下図のような想定では、マクロでの処理が向いています。

例ではA2から連番を開始していますが、どのセルからでもできます。
セルC5を選択してマクロを実行すると、C5→1、C7→2…という連番です。
連番開始を「10」からしたいなら、
コードの4行目 cnt = 1←10に修正。
5000まで連番を打つときは、
最後の方の Loop Until cnt > 100←5000に修正。

Sub Sample()
Dim r As Long
Dim cnt As Long

cnt = 1
Do
With ActiveCell.Offset(r)
If .Interior.Pattern = xlNone And _
WorksheetFunction.CountIf(Rows(.Row), "小計") = 0 Then
.Value = cnt
cnt = cnt + 1
End If
r = r + 1
End With
Loop Until cnt > 100
End Sub

<< 標準モジュールに貼り付ける >>
マクロのコードを記述・編集するときは、別のVBEという画面です。
1.上記のマクロコードを全てドラッグして、コピーします。
2.Altキーを押しながら[F11]キーを押します。
3.上の「挿入」メニューをクリックして、標準モジュールを挿入する。
4.右のウィンドウの「マクロを書くところ」に貼り付けます。
あとは、この画面はいらないので、右上の「×」で閉じます。

ココを参考にしてください。

http://officetanaka.net/excel/vba/beginner/10.htm

<< マクロを実行する >>
※最初に連番を開始するセルを選択してから…
1.Altキーを押しながら[F8]キーを押します。
2.出てきたマクロのダイアログで「Sample」を選択して「実行」

kayotgwさん、こんにちは。。...

imo********さん

2016/7/2523:06:53

連番を打ち飛ばしたいセルで.Ctrl++でセルを「空白セル」挿入します。

was********さん

2016/7/2522:28:33

1行目からなのですね。
1行目と2行目は「小計」ではないとします。
A1セルに1を入力します。
A2:A100の範囲を選択します。
「F5キー押下(ジャンプ機能)、A2:A100 Enterキー押下」
範囲が選択されるので、空白セルのみ選択します。
「F5キー押下(ジャンプ機能)、Alt+S(セル選択)、Kキー押下、 Enterキー押下」
A2セルがアクティブになっていることを確認し次式を入力し、Ctrl+Enterとします。
=MAX(A$1:A1)+1

A列を選択し、コピー、そのまま選択範囲内で右クリック、「値のみ貼り付け」とします。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる