人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルの質問です。
下記のように1つのセル内に一桁から二桁までの数字が半角スペースで区切られて並んでいます。
1 3 4 11
同じ列の続く行にも同様に数字が並んでいます。
2 4 8 12
1 3 5 11
この場合、同じ列にある同じ数字をカウントする事は可能であれば教えて下さい!
この例ですと、1が2つ、2が1つ、3が2つ、4が2つ、5が1つ、8が1つ、11が2つ、12が1つ、
と集計できればいいのですが…。

●質問者: gotoday
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:エクセル カウント セル 数字
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● nepia11
●100ポイント

エクセルで

1.編集>置換で

・検索する文字列「 」←半角スペース

・置換後の文字列「,」

にします。

そうすると1 3 4 11→1,3,4,11 になります。

2.ファイル>名前をつけて保存から、

ファイルの種類をcsvファイルにして、任意の名前を付けて保存します。

3.そのファイルを、メモ帳等で開きます。

"1,3,4,11"

となっているので、これまた

4.編集>置換で

・検索する文字列「"」

・置換後の文字列「 」←半角スペース

そうると

"1,3,4,11"→1,3,4,11

5.この状態で、上書き保存。

6.このファイルをエクセルファイルで開くと、

A1セル=1 B1セル=3・・・ となります。

counta関数やcountif関数で数を数えることが出来ます。

http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございました!確かに、できそうというか、似た事を昔やった覚えがあります。

ただ、他の行のデータの絡みでこれをやるとかえって時間がかかって手計算の方が早くなってしまうんです。

元データを示せてないので、不適切というか曖昧な質問で申し訳ないです。


2 ● kon-hiro
●100ポイント ベストアンサー

nepia11 さんの回答が適切だと思います。

半角スペースで区切られた数字が多くなっても、操作が単純ですので対応出来るのでおすすめです。

が、まあ、他にもやり方があるにはあるということで、関数を使った方法を回答します。

使うのは、SEARCH関数、LEFT関数、MID関数の3つの組み合わせです。

SEARCH関数で、半角スペースの位置(何文字目か)を探り、

LEFT関数やMID関数で、数字を引っ張ってくるという方法です。

数えたい対象となるセルがA1だったとし、A1に

1 3 4 11

と入力されているとき、

?B1に、

=LEFT(A1,SEARCH(" ",A1,1)-1)

と入力する。

(A1の1つ目の半角スペースの位置の1つ前までの数字を左から切り出すという意味)

?C1に

=LEFT(MID(A1,SEARCH(" ",A1,1)+1,99),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,99),1)-1)

と入力する。

(A1の1つ目の半角スペースの位置の1つ後から99文字を切り出し、その文字の1つ目の半角スペースの位置の1つ前までの数字を左から切り出すという意味)


?D1に

=LEFT(MID(MID(A1,SEARCH(" ",A1,1)+1,99),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,99),1)+1,99),SEARCH(" ",MID(MID(A1,SEARCH(" ",A1,1)+1,99),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,99),1)+1,99),1))

と入力する。

(A1の1つ目の半角スペースの位置の1つ後から99文字を切り出し、さらに、その文字の1つ目の半角スペースの位置の1つ後から99文字を切り出し、その文字の1つ目の半角スペースの位置の1つ前までの数字を左から切り出すという意味)


?E1に

=MID(MID(MID(A1,SEARCH(" ",A1,1)+1,99),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,99),1)+1,99),SEARCH(" ",MID(MID(A1,SEARCH(" ",A1,1)+1,99),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,99),1)+1,99),1)+1,99)

と入力する

(A1の1つ目の半角スペースの位置の1つ後から99文字を切り出し、さらにその文字の1つ目の半角スペースの位置の1つ後から99文字を切り出し、さらにその文字の1つ目の半角スペースの位置の1つ後から99文字を切り出すという意味)

?そうすると、

B1には

1

C1には

3

D1には

4

E1には

11

と表示される。

?これらを下にコピーすると、B列、C列、D列、E列に 表が出来上がるので、これをCOUNTIF関数で数える。

?ここまで入力していたのをSheet1として、Sheet2のA列に

1

2

3

4

5

と行った具合に、数えたい数字を打っていく

?Sheet2のB1に

=COUNTIF(Sheet1!B:B,$A1)

と入力する

?これをC1、D1、E1にコピーする

?B1、C1、D1、E1を選択して、A列に数字が入っているところまで下へコピーする

これでSheet2に結果が表示されます。


Sheet1の作業が複雑だし、関数がわからなければ、さっぱり操作できないので、こんなやりかもあるという程度に思っていただければと思います。

尚、?以降は、他のやり方をでも共通で使えます。

http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございました!ちょっと今は手が離せないのですが、スゴイ!

丁寧さに感謝!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ