A1~A10までのセルに、次のようにカンマで区切られた複数の値が入っているデータがあります。
このようなデータから「1~10の値」の数を求めたいのですが、どうすれば可能でしょうか。
1つのセル内に1つの値であれば「countif関数」を使えばできますが、1つのセル内にカンマで区切られた複数の値が入っているような場合にはどうすればよいでしょうか? 具体的に教えてください。
(例)
A
1 1,2,3,4,5,6,7,8
2 3,6
3 1,7
4 1,2,6,8
5 10
6 4
7 1,6,7
8 10
9
10 5
B列にA列をコピーしてB列を選んでtakntさんがおっしゃっているように区切り位置を利用してバラす。
その後、B列からばらされた結果データが入っている範囲までを選択した形でshibajin-poohさんがおっしゃっているようにCOUNTIFで各データの数を数える
ということになると思います。(C列以降は区切り位置を使うとデータが上書きされるので注意が必要ですが)
まだ試していませんが、
こういうやり方があるのですね。参考になりました。
あと、貴重なご意見ありがとうございました。
はじめての質問だったので、
どうしてよいかわからなかったのです。
確かにセル内の一定しない値を「カウント」するのが課題なので、
この方法では難しそうですね。
各セル内の回答数ではなくて、1の数がいくつ、2の数がいくつというのが必要なのだと思うのですが。
また、
>=LEN(A1)-LEN(SUBSTITUTE(A1,"1",""))
↑についてですが、
例示のデータだけなら大丈夫なのですが、
例えば
1,10
というデータだと「2」が返るので正しい数が返りません。
「1」と「10」の区別をつけるために、
私の方の式では元データの両端に「,」を付加して、
「,1,」「,10,」で検索するようにしています。
LEN関数では駄目でしょうか
セルA1の"1"をカウントします
=LEN(A1)-LEN(SUBSTITUTE(A1,"1",""))
返り値は1です
「1~10の値」の数なら
=LEN(A1)-LEN(SUBSTITUTE(A1,",",""))
","の数をカウントした後+1するので返り値は8となります
A列に数値が入っているとして、まず「1」の値が入っているセルをB列に表示する数式です。
B1=IF(A1="","",IF(ISERROR(FIND(",1,",","&A1&",")),0,1))
以下必要行までフィルコピーしてください。
これでA列のセルに「1」があれば1を、なければ0、無回答は空欄が表示されます。
後はB列をSUMすれば「1」の回答数が算出できます。
これを応用して、別シートに集計表を作成することが出来ます。
回答データシートをSheet1、データがA列に入力されているとして、
新規シートを追加します。
A1から横に順番に1~10をJ1まで入力します。
A2=IF(Sheet1!$A1="","",IF(ISERROR(FIND(","&A$1&",",","&Sheet1!$A1&",")),0,1))
と入力し、J列のデータ行+1行までコピー貼り付けします。
これを各列(回答番号)毎にSUMすれば回答集計ができます。
ちなみにこうした質問はできればいわしタイプでなく人力タイプで質問された方が回答がつきやすいですよ。
(いわしは主に雑談や意見募集用途なので)
以上ご参考まで。
すいません。具体的にはどんな関数を使ってやるイメージでしょうか?
B列に作業列を作ってカウントしてもいいなら関数でできますね。
この機能は他のファイル形式から読み込むときにだけしか利用できないと思ってました。
ばらさずにやる方法はあるのでしょうか?
http://support.microsoft.com/kb/214261/ja
区切り位置を利用して
ばらすことも検討してみます。
ありがとうございました。