この人頭いいなと思ったエピソード

エクセルでアンケート集計をしていまして、一つのセルに選択肢番号をを入力し、複数回答の場合はカンマで区切って入力してあります。具体的には複数回答の場合は「1,2,5」などです。複数でない回答もあるので単純に「1」などのように一つの数字しか入力していないセルも混在しています
こうして入力したエクセルデータで、それぞれの選択肢の数をCOUNTIFで数えようとしましたが、例えば「1」の数を数えようとして検索条件"*1*"でも”1”にしても、正確な数がカウントできません。
きっと設定方法が違うと思うのですが、初心者なため、右往左往しています。アドバイスをお願いします。

A 回答 (3件)

Excelのヘルプによると、



Excel でワイルドカード文字や比較演算子を使って目的のデータの一部 (先頭または末尾の文字列、含まれる文字列) を検索条件として指定する場合、文字列値のみが検索され、数値データは検索されません。

ということらしいので、
(1)「1,2,5」と入力されたセル→文字列
(2)単純に「1」と入力されたセル→数値
として入力され、(1)のセルだけがカウントされているものと思われます。

対策としては、たとえば回答がA1:A10の範囲にあるとすると、
B1に
=TEXT(A1,"@")
と入力してA1を文字列に変換し、そのセルを下にコピーして列全体を文字列に変換し、
=COUNTIF(B1:B10,"*1*")
とカウントしてみてはいかがでしょうか。
    • good
    • 3
この回答へのお礼

早速のアドバイスありがとうございました
原因がわかってすっきりしました!
でも、やまりひとつひとつ、変換しなきゃいけないようですね。
参考になりました。

お礼日時:2007/01/22 03:07

こんばんは。



COUNTIF でするなら、このようになるはずです。

=SUMPRODUCT(COUNTIF(A1:A10,{"1,*","*,1,*","*,1","1"}))
ただし、これは、リテラル値(直接の数字の代入)しか受け付けてくれないようです。

ただ、私個人で一回きりでしたら、#2さんの方法を使います。
別シートに、データ-区切り位置で、コンマ切り分けして、それで、COUNTIF に掛けます。

たびたび同じことをするなら、ユーザー定義関数を使います。
以下のようにしたら良いかと思います。原理は、全部、コンマ付き数字を、分解させています。一応、参考までです。こちらは、そのまま、COUNTIFと同様に使えますが、カウントするのは数字のみです。

'標準モジュール


Function CommaCountIF(rng As Range, arg As Variant) As Long
'カンマ付き数字のカウントイフ
Dim mData() As Double
Dim c As Variant
Dim v As Variant
Dim i As Long
Dim j As Long
Dim buf As Variant
Dim cnt As Long
i = -1
For Each c In rng
 If InStr(c.Value, ",") > 0 Then
  buf = Split(c.Value, ",")
  For Each v In buf
   If IsNumeric(v) Then
     i = i + 1
    ReDim Preserve mData(i)
     mData(i) = v
   End If
  Next v
 ElseIf IsNumeric(c.Value) Then
  i = i + 1
  ReDim Preserve mData(i)
  mData(i) = c.Value
 End If
Next c
  For j = LBound(mData()) To UBound(mData())
   If mData(j) = arg Then
    cnt = cnt + 1
   End If
 Next j
CommaCountIF = cnt
End Function
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます
。。。ユーザー定義関数というのは初めてみました。
何せ初心者なので、使い方もわかりません。
もうちょっと、勉強してトライしたいと思います。
助かりました

お礼日時:2007/01/22 03:12

2-3日前に、私が答えた質問そっくりです。


http://gtubo.gpoint.co.jp/qa2660075.htmlれつ
その場合は私の提案は、カンマなしの入力を(省エネの見地から)、提案しました。
今回はカンマ区切りなら少しやりやすい
メニューのデーター区切り位置ーカンマや・・次ぎへ・・・完了
これで選択肢番号が列ごとに、各セルに分離されます。
あとFREQUENCY関数で、各番号の出現頻度を出してます。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
ただ、今回別途データ集計会社に、複数回答はカンマつきという入力オーダーがあったので、できるかぎりカンマなしの方法があればと思い、尋ねた次第です。

お礼日時:2007/01/22 03:10

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報