[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『21 や22 などカッコつきのカウント』(ROSE)
結合されたセルの中に長い文章があって、その途中にに21)、22)、23)・・・30)が入っています。
いくつ入っているかカウントしたいのですが、=COUNTIF(A1,"21)")のようなものを足そうとしても、この式すら0が返ります。
どんな関数にしたらいいでしょうか。
宜しくお願いします。
=COUNTIF(A1:A30,"21)") “21)”の数を数えたいのならでは? ~~~~ (dack)
) の数でよければ、 =LEN(A1)-LEN(SUBSTITUTE(A1,")","")) こんな数式で求められますが。 (純丸)(o^-')b
_| ̄|○ 残念! 気を取り直して、カウントするのは、21〜30ですか? カウントしない21〜30もあるのですか?(21日など) (純丸)(o^-')b
(1) 後ろに ) が付いている 21〜50 を数える。 (2) 数字は1回しか出て来ない。 (3) 例えば、(530) のような記述は無い。(後ろ3ケタがカウントする数字と同じ) 以上を条件として、下記数式でどうでしょう? (純丸)(o^-')b
=SUMPRODUCT(COUNTIF(A1,"*"&ROW(A21:A50)&")*"))
う〜ん、B3に入力されているのが全角ってことはないですか? どこかのセルに「21)22)」などと入力して上記数式を試したら どうなりますか? (純丸)(o^-')b
これですかねぇ、、、。だとしたら回避策は作業列を作って文を分けるしか 無いかも。後はマクロ達人さんの降臨を願って下さい。 (純丸)(o^-')b [[20040929155005]] 『置換の限界文字数』(しぇい)
こちらの続きでしょうか?↓ [[20040322154541]] 『@やAなどの○つき文字のカウント』(りんご)
=SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,ROW(A21:A50)&")",)))/3では、どうでしょう? (LOOKUP)
なるほど、SUBSTITUTEで配列を使うのですね。勉強になります。 ROSEさん、うまくカウントされるといいですね。 (純丸)(o^-')b
あら すいません勘違いでしたねヾ(^-^;) ごめんちゃい 書き込みしたあとにそのまま打合せに行ってしまって・・・ (dack)
昨日帰宅してマクロを考えてみました。ユーザー定義関数です。 標準モジュールに貼り付けて、=mycount(B3) のように 使ってみて下さい。 (純丸)(o^-')b
Function mycount(myr As Range) As Integer Dim i As Integer mycount = 0 For i = 21 To 50 If InStr(1, myr.Value, i & ")") > 0 Then mycount = mycount + 1 End If Next i End Function
追加で質問をしても宜しいでしょうか。
●LOOKUPさん、りんごさんの時の式にプラスして完璧な式となりました。
教えて頂きたいのは、式の最後を3で割るのはどういう仕組みによるものでしょうか。ということです。
●純丸さん、21)から50)は、ユーザーファンクションで解決しましたが、@〜Sも含めてのカウントとなると
何をどのように追加すれば宜しいでしょうか。
厚かましくて恐縮ですが、もし宜しければお教え願えますでしょうか。(ROSE)
>式の最後を3で割るのはどういう仕組みによるものでしょうか 21)や30)は、3桁ですから、削除された文字列/3が、文字列の数でしょう? (LOOKUP)
>21)や30)は、3桁ですから 式が難しかったので頭がよく回りませんでしたが、そうですね。 式は21)や50)のない長さを本来の長さから引く、ということですから、 確かに3で割らないと辻褄があいませんね。 分かりやすいご講義、有難うございました。(ROSE)
@〜S、21)〜50) 対応版です。 (純丸)(o^-')b ※マックだとだめなようです、念のため。
Function mycount(myr As Range) As Integer Dim i As Integer mycount = 0 '@〜S For i = 9312 To 9331 If InStr(1, myr.Value, ChrW(i)) > 0 Then mycount = mycount + 1 End If Next i '21)〜50) For i = 21 To 50 If InStr(1, myr.Value, i & ")") > 0 Then mycount = mycount + 1 End If Next i End Function
え〜と、私もマクロ初心者なのでヘルプやWebを見ながらやっています。 コードについては調べる内に、AscW関数に行き当たったので、それで 逆に取得しました。どうしてもわからない事がある時は、この学校で 質問しています。とまぁ、こんなところです。 (純丸)(o^-')b
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.