SUBTOTAL関数の不具合

このQ&Aのポイント
  • SUBTOTAL関数を使用して連番を振る際に、フィルタ対象外のデータにも番号が振られる不具合が発生しています。
  • 最終行のみ番号を削除するマクロを組み込む方法も考えましたが、フィルタ対象外のデータもフィルタ対象になることがあります。
  • SUBTOTAL関数の不具合を解消する方法、またはフィルタ後に連番を付与する別の方法について教えてください。
回答を見る
  • ベストアンサー

SUBTOTAL関数の不具合

こんにちは。宜しくお願いします。 http://www.officetanaka.net/excel/function/tips/tips21.htm 上記URLのHP内で説明している「=SUBTOTAL(3,$B$2:B2)」の数式をマクロに組 み込んで連番を振りたいのですが、このHPでも最後に赤字で注意書きをしてい る通り、データ範囲が正しく認識されず、フィルタ対象外データにも番号が振 られてしまいます。 フィルタ対象外データが表示されるのはどうやら最終行だけの様だったので、 最終行だけ番号を消すマクロを一緒に使う事も考えましたが、フィルタ対象外 データもフィルタ対象となる事がある為悩んでいます(上記HPの例だと「神奈 川」もフィルタ対象であり、最終行だけ番号を消すマクロを組み込んでしまう と「神奈川」がフィルタリングされた際、番号が消されるデータが1つ出来て しまう)。 SUBTOTAL関数の不具合を補う方法、もしくはフィルタ後に連番を付与する別の 方法等ございましたらご教示下さい。 例が解り辛くて申し訳ございません。不明点をご指摘頂きましたら補足させて 頂きますので宜しくお願いします。

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

  • ベストアンサー
回答No.1

フィルタ後にsubtotal入れるんでは、だめなのかな。

charlieroot
質問者

お礼

有難うございました、結局とある人に教えて頂いた Sub A列抽出行に連番() Dim r As Range Dim c As Range Dim i As Long With [A1].CurrentRegion Set c = .Columns(1) Set c = Intersect(c, c.Offset(1)) c.ClearContents .AutoFilter 2, "神奈川" For Each r In c.SpecialCells(xlCellTypeVisible) i = i + 1 r.Value = i Next '.AutoFilter End With のコードを加工して、解決しました。

関連するQ&A

  • SUBTOTAL関数

    エクセルの表にオートフィルターをかけて、抽出したデータの集計を出す時、SUBTOTALを入れた行まで非表示になることがあります。なぜでしょうか?

  • 《エクセル2000》オートフィルタとSUBTOTALを使ってデータのチェックをしたいのですが…

    いつもお世話になっています。 一行一件で大量のデータが打込まれ、並びに列の最下部から2行あけた後に、SUBTOTAL関数を入れてあるシートがあります。 タイトルのとおり、オートフィルタとSUBTOTALを使ってデータのチェックをしたいのですが、オートフィルタを選択すると、SUBTOTAL関数が入力されているセルまでもがフィルタをかける対象になってしまいます。 おそらくは「フィルタオプションの設定」という所をいじればいいのだと思いますが、「リスト範囲」という所のセル番号を変えてOKを押すと、フィルタそのものが外れてしまいます。(現在はSUBTOTAL関数が入力されているセルも「リスト範囲」の中に入ってしまっています) SUBTOTAL関数が入力されているセルを、オートフィルタの対象にしないためにはどうすればいいでしょうか。

  • エクセルのマクロ(SUBTOTAL関数)について。

    お世話になります。 エクセルのマクロ(SUBTOTAL関数)について ご指導願います。 (F37)から(F?)の一つ上の行までを小計する。 といった数式はどのようになるのでしょうか? F?は貼り付ける表によって最後Fの列番号が 変わりますので。 自分の作業予定では、下記マクロを登録したいの ですが。 表を貼り付ける。ここから作業する下記マクロ登録。 オートフィルタ機能を使う。 F?の列だけを、抽出し、そこに一つ上の行ま でを小計する数式を入れる。(←ここの数式が分かりません。) その値をJ27に反映させる。 どうすればいいのかお教え願いますでしょうか? よろしく御願い申し上げます。

  • Excel 連番の関数(SUBTOTAL)のコピー方法

    今使用している下記のような表があるのですが、同じシート内に上下に合計表があります。 SUBTOTALを使ってオートフィルタでB列が a またはb を選んだ時でも A列が連番になるよう、C列の合計が絞り込み後もに計算させるように簡単ではありますが、こんな表があるのですが、 今後上下の表の一部データを入れ替えする作業もあり、普通にコピーをしていれかえさせたいのですが、うまくいかない為、 $絶対参照を変えたりと、いろいろ試しているのですが、うまくいきません。 知恵をお貸し頂きたく、質問させて頂きました。 可能であれば教えて頂きたいのですが、 どうかよろしくお願いします。 -------------------------------------------------------      A   B    C    A1=SUBTOTAL(3,$B$1:B1)  1   1   a    1 2   2   b    1     A2~A4=コピー 3   3   a    1 4   4   b    1 5   合計 aまたはb       C5=SUBTOTAL(3,C2:C4) 6-------------------------------------------------- 7   1    a    1    A7=SUBTOTAL(3,$B$7:B7) 8   2    b    1    A8~A10=コピー 9   3    a    1 10  4    b    1      11  合計  aまたはb      C11=SUBTOTAL(3,$B$7:B7) -------------------------------------------

  • subtotal関数でのエラーについて

    現在前任者が使っているエクセルファイルを使いやすくするために、エクセル勉強中です。他の方の質問や回答を見させていただいてとてもためになりました!しかし・・・つまずいてしまったので教えてください★ A支店 東京地区 在庫数          収入          支出 B支店 東京地区 在庫数           収入                  支出 C支店 大阪地区 在庫数          収入          支出 ___________ 合計  件  在庫数        収入        支出 といった表をオートフィルタを使って、subtotal関数で在庫数、収入、支出の合計と件数を出したいのですが・・・ 収入と支出は上手くいくのですが、在庫数が上手くいきません。データはすべて直接入力ではなくVLOOKUPで持ってきており、収入と支出は00千円という書式設定をしています。この場合、何がいけなくて在庫数だけが#VALUE!という表示になってしまうのでしょうか? ちなみに、=SUMPRODUCT((MOD(ROW(データ行),3)=0)*SUBTOTAL(2,INDIRECT("C"&ROW(データ行)))*データ行)という式を入れています。 また、たとえば東京地区のみの件数の出し方を教えてください。 わかりにくい質問で申し訳ありませんが、どなたかご回答宜しくお願いいたします。

  • オートフィルタ使用時にCOUNTIFをSUBTOTALのように使いたい。

    エクセルのシートでデータ管理をしようと思います。 その時便利なのが、オートフィルタですが、    SUBTOTAL関数「例:=SUBTOTAL(9,A1:A100)」 を設定した場合、フィルタを操作すると、必要な数値が返ってきます。ところがというか当然というか、    COUNTIF関数「例=COUNTIF(B1:B100,"○") ではだめですよね。どうにかして関連づける方法はないでしょうか。 または、その他に同様な効果が得られる方法はありませんか。

  • Excel関数:SUBTOTALとSUMIFを組み合わせる?

    下記のような場合の集計ができる関数を教えて下さい。 SUBTOTALとSUMIFを組み合わせようと思ったのですが、うまくいきませんでした。 よろしくお願いします。 <表の内容> ・セルA1:「ランク」 ・セルA2~A50:「A」or「B」or「C」を入力している ・セルB1:「金額」 ・セルB2~B50:各金額を入力している <集計方法> ・セルB51に「ランクが"A"」の金額合計を表示したい ・ただしオートフィルターを使って他の条件で抽出もおこなっているのでSUBTOTAL関数のように、表示されている行の値のみを合計したい

  • エクセルVBA系・・ 関数のSUBTOTALの絡みで・・・

    いつもいつもいつも皆様には大変お世話になっております。 早速本題ですが オートフィルターでフィルターをかけた物の 足し算はSUBTOTALですよね。 そこからが問題なのですが、 SUBTOTALででた合計をVBAでコピーして貼り付けをしたいのです。 その貼り付け場所は 別のシートになります。 ちなみに作ってみたのはこんな感じです Windows("表.xls").Activate DATA = Range("A1:N1002") With Range("B4") .AutoFilter .AutoFilter Field:=3, Criteria1:="A店" .AutoFilter Field:=2, Criteria1:=">=" & Z , _ Operator:=xlAnd, Criteria2:="<=" & V End With Windows("B表.xls").Activate Cells(7, 3) = DATA(1002, 8)  '1002のところがSUBTOTAL関数が入ってます。 これでコピーをするとB表にでて来る数字が、通常のSUMで全体を出した答えが入ってくるのです;; SUBTOTALの出た数字がほしいのです・・・;; こういったことは出来るでしょうか? 宜しくお願い致します。

  • SUBTOTALについて教えてください

    複数のオートフィルタがかかった状態でのSUBTOTALについて教えてください。 《表1》のような状態の時に、 機種 金額 あ 42000 い 276500 う 49000 上記のような、金額を求める数式が知りたいです。 ただし、「月度」や「機種」や「種類」でのオートフィルタをかけた時に、 その時の結果が出るようにしたいのです。 SUMPRODUCT?とSUBTOTAL?を組み合わせればできるような記述が あったのですが、まだわかっておりません。ご協力お願いします。 《表1》 A B C D 1 月度 カテゴリ 種類 金額 2 9 あ SP 150000 3 9 い UV 12000 4 9 い UV 15000 5 9 あ UV 30000 6 9 い SP 50000 7 9 あ SP 11000 8 9 あ UV 10000 9 10 い SP 23000 10 10 い UV 14500 11 10 い UV 200000 12 10 あ SP 120000 13 10 あ SP 110000

  • エクセル関数Subtotalを使用して、グループ数をカウントするには

       A    B   グループ 担当 1 21   B 2 21   B 3 18   A 4 25   C  5 25   C 6  4   B 7  2   A 8  5   A というようなデータがあります。 フィルタを使用して、subtotal関数等を使用して担当別グループ数を A9に表示したいのです。 たとえば、担当Bをフィルタで選ぶと、A9にはグループ数2. 担当Aをフィルタで選ぶと、A9にはグループ数3という感じにしたいのです。 SubtotalとCount等の関数を組み合わせるとできるのでしょうか? どうぞ教えてください。

専門家に質問してみよう