下記のように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つ、
と集計できればいいのですが…。
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の作業が複雑だし、関数がわからなければ、さっぱり操作できないので、こんなやりかもあるという程度に思っていただければと思います。
尚、⑥以降は、他のやり方をでも共通で使えます。
エクセルで
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関数で数を数えることが出来ます。
ありがとうございました!確かに、できそうというか、似た事を昔やった覚えがあります。
ただ、他の行のデータの絡みでこれをやるとかえって時間がかかって手計算の方が早くなってしまうんです。
元データを示せてないので、不適切というか曖昧な質問で申し訳ないです。
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の作業が複雑だし、関数がわからなければ、さっぱり操作できないので、こんなやりかもあるという程度に思っていただければと思います。
尚、⑥以降は、他のやり方をでも共通で使えます。
ありがとうございました!ちょっと今は手が離せないのですが、スゴイ!
丁寧さに感謝!
ありがとうございました!ちょっと今は手が離せないのですが、スゴイ!
丁寧さに感謝!