お世話になります。
掲題の件で ご相談が御座います。
=SUBTOTAL(3,U5:U63) と
=COUNTIF(U5:U63,"完了") を 1つのセルで表現したいのですが
これは不可能でしょうか?
本当は「U列」だけではなく、20~30列全部に そのような機能を持った関数を入れたいのですが
両方を兼ね備えた関数を どなたかご存知ないでしょうか。
ようは、その表全体にフィルタを設定しており、いくつかの条件で抽出した時に「完了」の数が変わるので
現状 自分が思いつく所で考えると別シートに移して「=COUNTIF(●:●,"完了")」を都度入れていくか?
ぐらいしか思いつきません。
・フィルタで抽出しても元の範囲選択はそのまま。
・フィルタで抽出後に見えている選択範囲の「完了」だけを数えて欲しい
・上記2つの条件で1つのセルに数式を入力したい。
この3つの条件が満たされれば「=SUBTOTAL」や「=COUNTIF」にこだわる必要はありません。
どなたか ご存知であればご教示いただけますでしょうか。
説明が不足のようでしたら何度でも補足致しますので何卒宜しくお願い致します。
No.7ベストアンサー
- 回答日時:
またまたまた登場、myrangeです。
質問者がマクロをどの程度使えるのか分からないのでなんですが、
(質問から推測するにあまり使ったことがない?)
先に提示したマクロは関数ではありませんから
データの内容が変るたびに(結果を求めたい時点で)実行しなければいけません。
もし、SUBTOTALのような関数(セルに式としてセットする)にしたければ
以下のようなユーザー定義関数を作ることになります。
'----------------------------------------------
Function Ookami(myRange As Range, myStr As Variant) As Long
Dim Rng As Range
Dim Cnt As Long
For Each Rng In myRange
If Rng.EntireRow.Hidden = False And Rng.Value = myStr Then
Cnt = Cnt + 1
End If
Next Rng
Ookami = Cnt
End Function
'---------------------------------------------
使い方は、以下のようにします。
関数名は質問者のハンドルネームです。。(^^;;;
■Ookami(セル範囲, 検索文字)■
=Ookami(U5:U63,"完了")
F5~F666の範囲で、表示されてる"連絡済"をカウントしたければ
=Ookami(F5:F666,"連絡済")
要するにふつうの関数と同じような使い方になります。
以上です。
何度も ご回答いただきまして
誠にありがとう御座います。
やはりVBAにほぼ不可能は無いような感じですね。
こういった事を聞かずにやれるようになりたいものです。。
気に掛けていただきましてありがとう御座いました。
No.8
- 回答日時:
VBA案が順当だとは思いますが、数式一発でもできなくはないので一応…。
●セル範囲U3:U63について、
「値が"完了"であり」かつ「フィルタで表示されている」セルの数。
=SUMPRODUCT(SUBTOTAL(3,OFFSET(U2,ROW(INDIRECT("1:"&ROWS(U3:U63))),))*(U3:U63="完了"))
※U2を参照している部分は、対象範囲の直上セルを指定してください。
以上ご参考まで。
ご回答誠にありがとう御座います。
結論「マクロは嫌」と言われてしましまして、また 急いでいたこともあり
_Kyleさんの回答を見る前に作業列を使って解決してしましました。。。
もったいないことをしました。
いただいた数式の中身を理解し、別の機会に利用させていただこうと思います。
ご対応いただきましてありがとう御座いました。
No.5
- 回答日時:
こんばんは!
まったくの的外れになるかもしれませんが・・・
どうしてもオートフィルタを使わないとダメですか?
無理矢理って方法になります。
↓の画像のようにオートフィルタを使わずに
条件だけを入力すれば
その条件に合ったセルの個数と「完了」のセルの個数を
2段で表示させる方法になるのですが、
画像の場合は「ハ」の個数と「完了」個数を表示しています。
B21セル =SUMPRODUCT(($A$2:$A$19=$A$21)*(B$2:B$19<>""))
B22セル =SUMPRODUCT(($A$2:$A$19=$A$21)*(B$2:B$19=$A$22))
として、B21・B22セルを範囲指定した後にオートフィルで列方向にコピーしています。
この程度の回答しか思い浮かびませんでしたが、
的外れなら軽く読み流してくださいね。m(__)m
ご回答 ありがとう御座います。
フィルタを使う必要が御座いますので この方法はちょっと。。。
でも、いつも いろいろと工夫をされているtom04さんの姿勢はいつも関心させられます。
自分も見習いたいと思います。
ありがとう御座いました。
No.4
- 回答日時:
またまた登場、myRangeです。
マクロでやりたいということなので。。。
コードの書き方はいくつかありますが、簡単なのを2つほど。
結果は、セルU1に表示するものとした場合。
'---------------------------------------
Sub Test222()
Dim Cnt As Long
Dim Rng As Range
Dim myRange As Range
Set myRange = Range("U5", Cells(Rows.Count, "U").End(xlUp))
For Each Rng In myRange.SpecialCells(xlCellTypeVisible)
If Rng.Value = "完了" Then
Cnt = Cnt + 1
End If
Next Rng
Range("U1").Value = Cnt
End Sub
'------------------------------------------------
Sub Test333()
Dim R As Long
Dim Cnt As Long
For R = 5 To Cells(Rows.Count, "U").End(xlUp).Row
If Cells(R, "U").Value = "完了" And _
Cells(R, "U").EntireRow.Hidden = False Then
Cnt = Cnt + 1
End If
Next R
Range("U1").Value = Cnt
End Sub
'---------------------------------------------
それから、お礼のコメントに
>やはり作業列を追加する以外方法はないのでしょうか。。。
>現状 このシートは「DP列」までデータが入っておりまして
>そろそろ限界に近づいております。。。
とありますが、DP列は最大列の半分(xl2003まで)しか使ってないですが、
それがなぜ、そろそろ限界に近づいて、となるのでしょうか。
ちょと疑問。
以上です。
再登場 誠にありがとう御座います。
また、VBAのコードまでいただきましてありがとう御座いました。
結論から言うと「マクロは嫌」と言われてしまいまして
関数で作業列を使ってやる事になってしまいました。。。
業務用共有資料ではなく 個人の作業用に活用させていただこうと思います。
わざわざ ありがとう御座いました。
No.3
- 回答日時:
エクセルのバージョンは何でしょうか?
当方Excel2002では
=SUBTOTAL(3,U5:U63)
を入力しているのセルの値は、オートフィルタの結果によりご質問の希望通りに変化します。
ご回答誠にありがとう御座います。
言葉足らずですみませんでした。。。
Excelは2003です。
あと、各列には「完了」と「未完了」が混在しており、フィルタの抽出条件により
都度見えている画面上「完了」と「未完了」の数が変わってきます。
なので「=SUBTOTAL」だけだと 完了、未完了の両方の合計が出て来ますので苦労しております。
何か良い方法を ご存知でしたら是非お願い致します。
No.2
- 回答日時:
作業列を使わないなら、マクロになるでしょう。
作業列を使う方法(作業列をV列とする)
V5に、
=(U5="完了")*1
と式をいれ、V63までコピーする
●求める式は、
=SUBTOTAL(9,V5:V63)
となる。
作業列のV列が邪魔なら非表示にしておく。
尚、マクロなら簡単にできますが。。。
以上です。
ご回答誠にありがとう御座います。
やはり作業列を追加する以外方法はないのでしょうか。。。
現状 このシートは「DP列」までデータが入っておりまして
そろそろ限界に近づいております。。。
もし よろしければマクロでの解決方法を ご教示いただけませんでしょうか。
お忙しい中 大変 恐縮では御座いますが
何卒 宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
推しミネラルウォーターはありますか?
推しミネラルウォーターがあったら教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
=SUBTOTAL に =COUNTIF の機能を実装2
Excel(エクセル)
-
教えて下さい!関数SUBTOTALとCOUNTIFを組み合わせたいのですが…
Excel(エクセル)
-
エクセルでフィルタ後の条件付き個数のカウント
その他(Microsoft Office)
-
-
4
SUBTOTALとCOUNTIFを混ぜた関数について
Excel(エクセル)
-
5
EXCEL SUMPRODUCTとSUBTOTALについて
Excel(エクセル)
-
6
フィルターかけた後、重複を除いてカウントしたい。 すみませんアドバイスお願いします! 取引コード 販
Excel(エクセル)
-
7
オートフィルタ使用時にCOUNTIFをSUBTOTALのように使いたい。
Excel(エクセル)
-
8
Excel関数:SUBTOTALとSUMIFを組み合わせる?
Excel(エクセル)
-
9
エクセルの計算結果が0になってしまいます
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
Excel関数、何がいけないのかわ...
-
色フィルターをかけた状態で、...
-
教えて下さい!関数SUBTOTALとC...
-
エクセルの計算表の下向き三角...
-
エクセルで、桁数の異なるデー...
-
excelで奇数の行のみ削除したい
-
Excelでの行の削除方法について
-
エクセルのフィルタをかけると...
-
UsedRangeを使ってソートするこ...
-
エクセルを使用してデジタルフ...
-
行番号の文字の色が青色の理由?
-
オートフィルタで抽出したデー...
-
5の倍数の日付だけを抽出したい
-
Excel マクロ オートフ...
-
ACCESSのフォームフィルタ
-
エクセルで特定の範囲内から小...
-
オートフィルタの使用にチェッ...
-
Excel2010 フィルタで抽出できない
-
Excelのセルのデータ:年...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルオートフィルタで余計...
-
エクセルで、桁数の異なるデー...
-
教えて下さい!関数SUBTOTALとC...
-
色フィルターをかけた状態で、...
-
Excel関数、何がいけないのかわ...
-
オートフィルタで抽出したデー...
-
Excel VBAでフィルタしたものに...
-
エクセルの計算表の下向き三角...
-
エクセルのフィルタをかけると...
-
行番号の文字の色が青色の理由?
-
エクセルを使用してデジタルフ...
-
excelで奇数の行のみ削除したい
-
5の倍数の日付だけを抽出したい
-
エクセルでのオートフィルタオ...
-
色のついたセルにフラグを立た...
-
エクセル:色の付いたデータを...
-
【Excel】 可視セルへの貼り付...
-
=SUBTOTAL に =COUNTIF の機能...
-
Excelでオートフィルタ時に交互...
-
関数で可視セルのデータ個数カ...
おすすめ情報