はじめまして!
エクセル初心者です。過去ログを検索してみたのですが、上手く見つけられなかったので質問します。
下記のようなデータがあります。
A1 B1 C1 D1
1 ○ × △ ▲
2 × ▲ ▽
3 ○ × ○ △
4 ▽ × ○ △
5 ○ ▲ ▽
6 ▲ △ ×
7 ○ △ × ▲
A1~D1にはオートフィルタをかけてあります。
A8にはCOUNTIF(a1:a7,"○")
A9にはCOUNTIF(a1:a7,"▲")
A10にはCOUNTIF(a1:a7,"△")
A11にはCOUNTIF(a1:a7,"▽")
A12にはCOUNTIF(a1:a7,"×")
B8にはCOUNTIF(b1:b7,"○")
B9にはCOUNTIF(b1:b7,"▲")
・・・・・とそれぞれ対応させいます。
例えば
A1で○を選択したときに、A8の数字は4になるのですが、B列の×はA列の○に対応した2にしたいのですが
3になってしまいます。
表示部分のみの文字列カウントをする方法ありませんか?
(countifを入力してあるセルは非表示部分もカウントしてしまいます。)
No.4ベストアンサー
- 回答日時:
#2>上の式をどうやって使えばいいのか
エクセルのワークシート画面でALT+F11 を押す
VBE画面になるので、
メニューの挿入から標準モジュールを選ぶ
標準モジュールでのコード入力画面になるので、
#2の回答の
切り取り線(?) より下の部分をコピーして貼り付ける
ウィンドウの×ボタンを押してVBE画面を閉じる
ワークシート画面で適当なセルで
=COUNTIFonDISP(セル範囲, 条件)
のようにして使う。(COUNTIF と用法は同じ)
#3の方が仰るように
Application.Volatile
した方がいいかもしれません。(i は必要ないけど)
もちろん関数名などは、自分の使いやすいように変更なさればよいです。
#2の利点は、内部的にCOUNTIF を呼び出しているので、
実質COUNTIF と同じであるということです。
(つまり、条件に"*○*" とか">10" とかが使えるということです)
No.3
- 回答日時:
行の非表示に変更・表示に変更を関数で捉えられません。
SUBTOTALはCOUNT関数に当たる第2引数のコードはあるが、COUNTIFに当たるコードがありません。
そのほかも非表示を特別扱いする関数は無いように記憶します。
それで、Hidden状態を判別できるVBAを使わざるを得ないでしょう。
#2のご回答とほぼ同じですが
Public Function CntDisp(r As Range, cond As String) As Long
Application.Volatile
Dim count As Long
Dim x As Range
Dim i As Integer
i = 0
For Each x In r
If x.EntireRow.Hidden = False Then
If x = cond Then
count = count + 1
End If
End If
Next
CntDisp = count
End Function
を出してみます。違いは
(1)If x = "a" Then
count = count + 1
End Ifの理解のやさしさ
(2)Volatile
ただし
http://www.moug.net/mmaga/back/066.htm のようなご注意も見つけました。
しかしf9(再計算)キーを押したときに差が出ました。
(3)しかし表示を再表示したとき、自動的には関数の結果出ている件数が戻りません。F9を押すと戻りました。
No.2
- 回答日時:
可視セルを対象として実行するCOUNTIF を定義する
標準モジュールに貼り付け
countif と同じように使う
----------------------------------------------------------------
Public Function CountIFonDisp(r As Range, cond As String) As Long
Dim count As Long
Dim x As Range
For Each x In r
If x.EntireRow.Hidden = False Then
count = count + Application.WorksheetFunction.CountIf(x, cond)
End If
Next
CountIFonDisp = count
End Function
No.1
- 回答日時:
自信はありませんが、
subtotal関数を使ってはいかがですか?
=SUBTOTAL(3,A1:A7)
=SUBTOTAL(3,B1:B7)とし、
A1で○をオートフィルターで選択し
且つ
B1で×をオートフィルターで選択すると
それぞれ表示されているカウントが出るはずですが、
やりたい事とちょっとずれてたらスイマセン・・
有難うございます。
私も最初SUBTOTALを考えたのですが
これを使うと、A8には検索前の段階で
全ての文字列の合計が表示されてしまうんですよね。
○はいくつ、△はいくつ等個別にカウント検索前、検索後にそれぞれ表示したいのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) excel関数部分一致について教えてください。 2 2022/08/05 14:35
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) EXCEL 複数の条件に合致する個数を求めるには? 3 2022/04/19 16:39
- フリーソフト Googleスプレッドシートで特定の言葉が含まれる行の色分けをしたいのですが 4 2022/04/30 15:29
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルでフィルタ後の列の重複を回避したい 6 2022/10/13 12:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
一つのセルに計算式を入れて別...
-
エクセル関数使用で赤色数字を...
-
エクセルで入力のあるセルのみ...
-
エクセルで逆さまに印刷したい
-
表に日付と担当者を入力すると...
-
EXCELのデータ修正時に、...
-
画像(GIF/JPEG Image)をエ...
-
EXCELで千円単位を百万円単位に
-
エクセルで部屋番号や個人情報...
-
エクセルで重複データから抽出...
-
エクセルでの順位に応じた点数...
-
時刻計算(ミリ秒)の方法
-
列幅が変更できなくなった
-
エクセルで、セルに何か入力す...
-
エクセルのマクロについて(同じ...
-
excel2007で特定の行が印刷され...
-
エクセルのファイルでメモリが...
-
エクセルでセルをクリックして...
-
Excel・プラス値とマイナス値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでURL挿入後、名前を変...
-
エクセル関数使用で赤色数字を...
-
エクセルで入力のあるセルのみ...
-
EXCELのデータ修正時に、...
-
エクセルで逆さまに印刷したい
-
EXCELで千円単位を百万円単位に
-
一つのセルに計算式を入れて別...
-
列幅が変更できなくなった
-
3つの条件のうち、2つを満た...
-
エクセルで前月までの平均を出...
-
エクセルで1分あたりの作業量...
-
エクセルでセルの日付を和暦表...
-
エクセルで部屋番号や個人情報...
-
エクセルでの順位に応じた点数...
-
表に日付と担当者を入力すると...
-
画像(GIF/JPEG Image)をエ...
-
excel2007で特定の行が印刷され...
-
Excel・プラス値とマイナス値を...
-
エクセルでこれをやってみたい...
-
勤務表で勤務時間が入力されて...
おすすめ情報