よろしくお願します。Excel2013である特定の数字を含むものをカウントするにはどうしたらいいでしょうか。
具体的には
1
”1”
【1】
と記載されているものを
「1が3つある」
という風にカウントしたいのです。
countif 分では正確にカウントしません。
coutnif分を使う前にデータクリーニングをしたほうが良いかとも思いますが、
『1』"1"なd、色々な回答の仕方をしてきているようで、置換を行うのもかえって時間がかかります。
【】や""で囲まれても、その中の数字をカウントする方法はないでしょうか。
皆さまならどのようにしますか。
よろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
再投稿です
前回の回答の結果は、文字列の中の数字のみを文字として抜きだしましたが
もし、数字を数字として扱いたいのであれば、
=MAX(TEXT(MID(A1,{1,2,3,4,5},{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}),"標準;;0;!0")*1)
No.4
- 回答日時:
>皆さまならどのようにしますか。
ということですので、私なら正規表現で解決!
使えるか使えないかよりも、以下は便利だと思います。
以下はかなりの汎用性があります。一般の関数には、以下のような能力はありません。正規表現の入れ方が必要なので、例をいろいろ上げてみました。
全角も数字として数えてしまいます。
A列
11
”12”
【1】
13
=reCOUNTIF(A1:A4,"\d+","=1")
答えは、1
範囲は、A1:A4,
\d+ は、とにかく数字を集める
その中で、
=1 だけを選ぶのです。
----------------
1文字以上のワイルドカード
=reCOUNTIF(A1:A4,"\d+",">10")
なら、集めた数字で、10以上はいくつかで、
3 となります。
---------------
文字の検索も可能です
=reCOUNTIF(A1:A4,"【.】")
括弧の中に、「.」半角コンマ1つはいっています。1文字ワイルドカード
【1】は勘定には入れますが、
【12】は、勘定には入れません。
答えは 1
---------------------------
A列
11
”12”
【1】【1】
13
正規表現グローバル
=reCOUNTIF(A1:A4,"\d+","=1")
これは、一回しか数字は拾いませんので、1個
グローバルモードになると
=reCOUNTIF(A1:A4,"\d+","=1",TRUE)
とすると、同じ行でも、何回か拾いますので、2個
また、文章の句読点の数さえ数えられます。
=reCOUNTIF(A1:A26,"[、。]",,TRUE)
'//標準モジュールのみです。
Function reCOUNTIF(範囲, 検索値, Optional 条件 = "=", Optional bGlobal As Boolean = False)
''引数の意味:reCOUNTIF(範囲, 検索値, [条件],[グローバル])
Dim Rng As Range
Dim d_text As String
Dim expr As String
Dim RegEx As Object
Dim Ms, m, buf, c, t, cnt As Long, j As Long
'言い換え
expr = 条件
Set Rng = 範囲
d_text = 検索値
expr = 条件
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
.Global = bGlobal: .IgnoreCase = False
.Pattern = "(" & d_text & ")"
End With
For Each c In Rng
If IsNumeric(c) Then
buf = StrConv(c.Value, vbNarrow)
Else
buf = c.Value
End If
Set Ms = RegEx.Execute(buf)
If Ms.Count > 0 Then
For Each m In Ms
t = Ms(0).SubMatches(0)
If expr <> "" And expr <> "=" Then
j = Application.Evaluate(m & expr)
If j Then j = 1
Else
j = j + 1
End If
If j <> 0 Then
cnt = cnt + 1
j = 0
End If
Next
End If
Next c
reCOUNTIF = cnt
End Function
No.3
- 回答日時:
除外したい物が全て分かっているなら、その一覧を作り、一文字目がそれに一致する記号であれば、前後一文字ずつ除外したものを表示させる。
その除外した一覧に対してCOUNTIFを使う。
かな
No.2
- 回答日時:
A1セルに【1】があり
B1セルに
=MID(A1,MATCH(0,INDEX(ISERR(-MID(A1&0,COLUMN(1:1),1))
+0,0),),COUNT(INDEX(-MID(A1,COLUMN(1:1),1),0)))
そうすれば、1 のみ抽出できる。
但し、これは文字列の中から数字のみを抽出するので
A1セルが【123】だと、B1セルは 123 となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel countif関数で取り消し線のセルをカウントしないようにしたい countif関数で文 2 2023/08/21 10:27
- その他(Microsoft Office) SUMIFとCOUNTIFの違いについて 4 2022/09/29 14:13
- Excel(エクセル) 【エクセル関数】アルファベットで以上だったらカウントする 4 2022/07/09 14:07
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) countif関数について質問 4 2022/06/14 12:11
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ある列、或いは、ある行のセル...
-
SUMIF関数で、「ブランク以外を...
-
エクセル1行おきのセルを隣の...
-
文字列から英数字のみを抽出す...
-
セルを結合した時のエクセル集...
-
エクセルで年月日から月日のみへ
-
自分の左隣のセル
-
EXCELでマイナス値の入ったセル...
-
エクセルで、A2のセルにA3...
-
VBA セルをダブルクリック→違...
-
条件付き書式の色付きセルのカ...
-
EXCELのcountif関数での大文字...
-
エクセルで、指定の値よりも大...
-
【Excel】IF文「ある文字を含ん...
-
エクセルに入力後、別シートの...
-
【Excel】特定のデータが入って...
-
Excelで大量のセルに一気に関数...
-
エクセルVBAでチェックボックス...
-
【Excel】4つとばしで合計する方法
-
スプレッドシートの作業範囲
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUMIF関数で、「ブランク以外を...
-
文字列から英数字のみを抽出す...
-
エクセル1行おきのセルを隣の...
-
自分の左隣のセル
-
エクセルで、指定の値よりも大...
-
excelで、空白を除いてデータを...
-
セルを結合した時のエクセル集...
-
エクセルで、A2のセルにA3...
-
エクセルで年月日から月日のみへ
-
エクセルに入力後、別シートの...
-
【Excel】4つとばしで合計する方法
-
Excelで大量のセルに一気に関数...
-
エクセルで特定のセル内にだけ...
-
EXCELのcountif関数での大文字...
-
EXCELでマイナス値の入ったセル...
-
条件付き書式の色付きセルのカ...
-
エラー「#REF」の箇所を置き換...
-
Excelで離れた位置のAVERAGEを...
-
同一セル内の重複文字を削除し...
-
週の労働時間を計算するエクセル
おすすめ情報