アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excelのある列に、1や123など、桁が異なる数値が入っています。その列のデータの中の例えば1がいくつあるかをカウントしたいんです。
文字列ならば*(アスタリスク)を使ってできるのですが…。
数値を文字列として扱ってもうまくできません。

A 回答 (9件)

別案 =COUNT(FIND(1,A1:A100))


[Ctrl]+[Shift]+[Enter]配列数式、{}で囲まれる。
    • good
    • 0
この回答へのお礼

ありがとうございます。自分なりに試行錯誤をしたり多くに方にお知恵をいただきましたが、一番簡単でスッキリできました。
エクセル、日々是修行と実感。

お礼日時:2016/08/19 09:02

No.4のt_fumiakiさんの回答から


=SUM(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"1","")))
でないなら
=SUM(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,1,"",1)))
とか
=SUMPRODUCT(LEN(A1:A100))-SUMPRODUCT(LEN(SUBSTITUTE(A1:A100,1,"",1)))
    • good
    • 0

No.4 上手く行くケド


>>なんだか、うまくいかず、結局は文字列に変更し、

数値を使って上手く行きますよ。私のエクセルではバッチリ!

セル 数値
A1: 21
A2:1451
A3:  3
A4: 501

の場合、数値は数値型であって、実行すると4になるけど、これで良いのでしょう??
    • good
    • 0

こんばんは!



仮に1セル内に「1111」と数値があっても「4」ではなく「1」とカウントするわけですね?

一案です。
この質問だけの関数(ユーザー定義関数)を作ってみてはどうでしょうか?

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)通常のワークシート関数のような使い方をしてみてください。

Function kosuu(myRng As Range, myStr As String) 'この行から//
Dim c As Range, cnt As Long, myEmpt As Long
For Each c In myRng
If c <> "" Then
If InStr(c, myStr) > 0 Then
cnt = cnt + 1
End If
Else
myEmpt = myEmpt + 1
End If
If myEmpt > 100 Then Exit For '←★//
Next c
kosuu = cnt
End Function 'この行まで//

※ 使い方 ※ 
仮にA列にデータがあるとします。
表示したいセルを選択 → 数式バーの左の「fx」をクリック → 「関数の分類」の窓の右側にある▼をクリック → ユーザー定義を選択
→ kosuu が選択されている状態になるはずですのでそのままOK
① Myrng の窓で範囲を指定(A列すべてを選択しても構いません)
② Mystr の窓で検索したい文字(今回は 1 とします)を入力しOK
これで数式バーには
=kosuu(A:A,1)
と表示されセルには「1」を含むセル数が表示されます。

※ コード内の「★」の部分で空白セルが100を超えるととりあえずループを抜けるようにしています。
(列全体を選択した場合、Excelが「応答なし」になると思われますので)

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2016/08/17 22:43

=SUMPRODUCT(LEN(A:A)-LEN(SUBSTITUTE(A:A,"1","")))

    • good
    • 0

A1~A100までをセルをカウントしたいなら、


=SUM(LEN(A1:A100)-LEN(SUBSTITUTE(A1:A100,"1","")))
をどこかのセルに入力して、数式バーにカーソルを当てて
Shift+Ctrl を押した状態でEnter。配列数式にする。
    • good
    • 0
この回答へのお礼

ありがとうございました。
なんだか、うまくいかず、結局は文字列に変更し、
1=A  2=B  3=C と置換して、countif関数で計算しました。
いろいろありがとうございました。

お礼日時:2016/08/17 22:47

sumとcountを組み合わせれば出来ます。

    • good
    • 0

ピボットテーブルを使えば分類と集計ができるはずです。


なお、「*」は全てを指すため分類はできないはず…

なお、「1」と「123」で「1」は二つ、をカウントしたいならば、それは無理。
無理強いするならば、「123」を「1」「2」「3」に分解が必要でしょう。
    • good
    • 0

数値を文字列に変換してから、仰る作業を行います。



具体的には忘れましたが、STR関数だったかな?

*(アスタリスク)を使って、ではなかった気がします。
    • good
    • 0
この回答へのお礼

ありがとうございます。
STR関数、調べましたが、わからずできませんでした。

お礼日時:2016/08/17 22:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!