• ベストアンサー

すべてのデータをデータごとに一瞬でカウントする方法・・・

例えば、 k120 w125 e450 p250 k120 e450 の数字が入っていた場合、k120のデータ、w125のデータ、e450のデータ・・のように、勝手にパソコンが数字ごとに分けて、カウントしてくれる関数?を教えてください。ついでに、どのようにしたら、そうなるのかも教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.5

   A 1 data 2 k120 3 w125 4 e450 5 p250 6 k120 7 e450 上のデータを元にして[ピボットテーブル レポート]を作成すると、一瞬で(?)次のようになりますが如何? データの個数/data data        合計 e450         2 k120         2 p250         1 w125         1 総計         6

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

VBAでやると 例データA列 A列       C列   D列 k120 k120 4 w125 w125 1 e450 e450 3 p250 p250 2 k120 h100 1 e450 k120 k120 e450 h100 p250 標準モジュールに下記を貼り付けて実行 Sub test01() d = Range("A65536").End(xlUp).Row j = 1 Cells(j, "C") = Cells(1, "A") j = j + 1 For i = 2 To d c = WorksheetFunction.CountIf(Range(Cells(1, "A"), Cells(i, "A")), Cells(i, "A")) If c = 1 Then Cells(j, "C") = Cells(i, "A") j = j + 1 End If Next i '----- For i = 1 To j - 1 c = WorksheetFunction.CountIf(Range(Cells(1, "A"), Cells(d, "A")), Cells(i, "C")) Cells(i, "D") = c Next i End Sub 結果 上記のC、D列の通り。 ーーー 関数では上記VBAの前半に当たる、どういう文字列があるかを出すのが 複雑になる。 上記は、WorksheetFunctionを使ってますが、使わなくてもできる。 ーーーー >勝手にパソコンが数字ごとに分けて K120などのデータは「数字」ではないですよ。文字列です。kと120は分離して、120の部分の出現頻度を数えるのですか。質問は十分気を回して書いてください。

  • suiko_wkk
  • ベストアンサー率37% (33/89)
回答No.4

カウントという意味合いが少し不明ですが、roadhさんが答えている以外ですと・・・ =SUMIF(セル範囲,検索条件,合計範囲) 等の関数はいかがでしょうか? セル範囲はk120等の項目頭とデータ全体を範囲指定して 検索条件はk120等のセル 合計範囲は合算したい数値のあるエリアを指定します。 k120|1| W123|5| k120|6| とあった場合K120のあるエリアの数値を合算しますので 1+6の計算を行ってくれます。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

SUMIF 関数と思われ。 A列に k120 などとあり、B列に数値データがある。 集計条件を A 列が k120 である B 列の数値を集計(合計)する。 と仮定した場合、次のような候補が使えそうです。 1. SUMIF 関数を利用する  --> =SUMIF($A$1:$A$6,"k120",$B$1:$B$6) 2. SUMPRODUCT 関数を利用する  --> =SUMPRODUCT(($A$1:$A$6="k120")*($B$1:$B$6)) 3. [データ]-[集計]機能を利用する  ※ A 列を事前にソートしておく必要があります。  ※ 表には見だしが必要です。  表全体を選択してから、メニューをたどって下さい。

miraii
質問者

補足

回答ありがとうございます。 B列に数字はありません。カウントというのは、このデータでいうと、k120が2コあるということです。ですので、数字を合計するということではありません。

noname#37676
noname#37676
回答No.2

エクセルのA1:A6に『例えば、』のデータが入力されているとして B列に『数字ごとに分けて、カウントしてくれる関数?』ということならば、 =COUNTIF($A$1:$A$6,"K120") =COUNTIF($A$1:$A$6,"W125") 「$A$1:$A$6」の範囲から「"K120"」という文字列が入力されたセルをカウントします。

miraii
質問者

お礼

COUNTIFは、私も考えていました。でも、それだと、1回、1回データを指定しないといけないので、ちょっと、私の質問していたことと違います。でも、ありがとうございました。

  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

k120が意味するところが判りません。 ファイル名なのでしょうか?だとすればテキストファイルなのでしょうか? また、Excelのような表計算に入ったデータなのでしょうか?その場合、どんな状態でならんでいるデータなのでしょうか? データの形式やファイル形式が判らないとなんとも手段を選択しようがありません。

miraii
質問者

補足

わかりにくくて、すみません。 あの数字は、エクセルのセルに入ったデータです。A1~A6に入ってると思ってもらえればけっこうです。

関連するQ&A