[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『OKでもOKでもカウントしたい』(ジゼル)Excel2000
A列にあるOKの件数をカウントしたいのですが、複数人がそれぞれ入力するようになっているため 「OK」だったり「OK」だったりします。 全角のみカウントされるようになっています。COUNTIF(A:A,"OK") 半角でも全角でも「OK」や「OK」と入力したらカウントできるようにするにはどうしたらいいのですか? 現在は、フィルタで「OK」だけ選択して「OK」に入力しなおしているのですが、もっといい方法があると思いながらフィルタをかけてます。 ジゼル
=COUNTIF(A:A,"OK")+COUNTIF(A:A,"OK") ではダメですか?
修正する場合もA列を選んで置換したほうが早いかと思います。 (Mook)
こんばんは Mookさま
すごい...こんなこと出来るのですね +なんて出来るのですね。 ありがとうございます。 また修正方法も教えてくださって 置換なんて考えもつきませんでした。 ジゼル
置換も面倒臭いというものぐさな方(自分のことw)には、ユーザ定義関数と いう手もあります。下記のコードを標準モジュールにおいて、シートで定義した 関数を使えるようになります。
使い方は COUNTIF と同じですが、COUNTIFNW は全角、半角を COUNTIFALL は全角、半角、大文字、小文字 を無視して数えます。
'-------------------------------------- ' 全角・半角をカウント '-------------------------------------- Function COUNTIFNW(searchArea As Range, countWord) '-------------------------------------- Dim nWord Dim wWord nWord = StrConv(countWord, vbNarrow) wWord = StrConv(countWord, vbWide)
If nWord = wWord Then COUNTIFNW = Application.WorksheetFunction.CountIf(searchArea, nWord) Else COUNTIFNW = Application.WorksheetFunction.CountIf(searchArea, nWord) _ + Application.WorksheetFunction.CountIf(searchArea, wWord) End If End Function
'-------------------------------------- ' 全角・半角、大文字・小文字をカウント '-------------------------------------- Function COUNTIFALL(searchArea As Range, countWord) '-------------------------------------- Dim sWord sWord = UCase(StrConv(countWord, vbWide)) COUNTIFALL = 0 Dim r As Range For Each r In searchArea If UCase(StrConv(r.Value, vbWide)) = sWord Then COUNTIFALL = COUNTIFALL + 1 End If Next End Function (Mook)
Mook様 このマクロの作動方法を教えて下さい。 よろしくお願いします。 (初心者)
=SUMPRODUCT((ASC(A:A)="OK")*1)
これでもできそう★
(MJ12)
追記:Mookさんのユーザー定義関数勉強させて頂きます♪
SUMPRODUCT では A:A は使えないようなので、範囲を指定する必要はありそうですが、 MJ12 さんのやり方の方がスマートですね。
=SUMPRODUCT((ASC($A$1:$A$65536)="OK")*1)
でテストしてみると、COUNTIF も SUMIF も全角・半角は識別するようですが、もともと 大文字・小文字は識別しないようです。
関数の仕様は難しい・・・。
先に提示したユーザ定義関数は、標準モジュールにおいた後セルで =COUNTIFNW(A:A,"OK")
のように使います。 (Mook)
Mookさん
自分2007ですが…
=SUMPRODUCT((ASC(A:A)="OK")*1)
で動きますよ…これって関数の仕様で使えないって事ですか?
この数式だと…大文字・小文字・全角・半角関係なくカウントしてます。。。
なんか自分のがおかしいのかな(^^ゞ
(MJ12)
2000(2003以前)だと、1:65535 か、2:65536 がSUMPRODUCTの最高。 BJ
バージョンで違うんですね(^_^;)
2000だと無理ですね…
失礼しましたm(__)m
(MJ12)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.