• ベストアンサー

値を取得してカウント

エクセルのセルの値を取得してカウントをする方法がわかりません。 たとえば 1 2 1 11 1 22 2 1 とあれば 番号 件数 1 4 2 2 11 1 22 1 2 2 3 1 2 とあれば 番号 件数 2 3 1 1 3 1と表示させたいです

みんなが選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22063)
回答No.2

挿入→ピボットテーブルがお勧めですので使ってみてください。

ryiryilp
質問者

お礼

回答ありがとうございます ピポットテーブルについてはよく分からないので調べてみます

すると、全ての回答が全文表示されます。

その他の回答 (7)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.8

対象データが 数値限定 ですが 同一値が 何件あるか 知りたい時は 例えばデータ中 任意値nが何件あるか は、 データ中の nと同値を 全て0に 一旦仮に変え 総和を取り 元の総和と比べ 差をnで割る そうすれば 個数が解る で、しょう 重複しないリストを取る には、 色々有りますが 初出現以外、2回目以降を エクセルが取り得る最大値 (※注:以降エクセル最大値と言います) にし 昇順に並び替え エクセル最大値 では、ないものの 個数を判定し 其を元に 其の個数を 取り出す 此で行けますね 因みに データ{5,3,6,4,2,4,7,3} が、与えられている時 仮に エクセル最大値を 99 と、すると、 第2出現を エクセル最大値99に 変え {5,3,6,4,2,99,7,99} 昇順に並び替え {2,3,4,5,6,7,99,99} エクセル最大値 ではないものの 個数 を、カウントし 6個 其の個数だけ取り出す =small({2,3,4,5,6,7,99,99},row(indirdct((addres(1,1,1.1,1.0)&":"&addres(1,カウントした個数6,1.1,1.0)))) で、しょうか

すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.7

ご質問の趣旨は、A列の重複のない番号を表示したい(件数はCOUNTIF関数で求められる)ということでしょうか? 件数の大きい順に並べる場合は、きわめて複雑な配列数式を使用する必要がありますが、その順にこだわらないのであれば比較的簡単な配列数式で対応することができます。 また、同数の場合は順不同でもよいのか(上の例なら1,2,22,11、下の例なら2,3,1の順)などの条件によっても使用する関数が異なります。 このような質問では、結果的にきわめて解読しにくい数式で対応することになりますので、数式をできる限り簡略化できるように、どうしてもこだわりたい部分を具体的に例示されたほうが良いと思います。

すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 又、件数が多い順に並べる場合には、作業列を設けて対応します。  今仮に、C列を作業列として使用するものとします。  まず、C1セルに次の様な関数を入力して下さい。 =IF($A1="","",IF(COUNTIF($A$1:$A1,$A1)=1,COUNTIF($A:$A,$A1)-ROW()/10000000,""))  次に、C1セルをコピーして、C2以下に貼り付けて下さい。  次に、E2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT($C:$C),"",INDEX($A:$A,MATCH(LARGE($C:$C,ROWS($2:2)),$C:$C,0)))   次に、F2セルに次の関数(回答No.5のものと同じ)を入力して下さい。 =IF($E2="","",COUNTIF($A:$A,$E2))  そして、E2~F2のセル範囲をまとめてコピーして、同じ列範囲の3行目以下に貼り付けて下さい。

すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に 1 2 1 11 1 22 2 1 と数値が並べて入力されている列がA列であり、その内、一番上にある1が入力されているセルがA1セルであるものとします。  また、「番号」と入力されているセルがE1セル、「件数」と入力されているセルがF1セルであるものとします。  御質問の例の様に、元データが数値の場合で、尚且つ、E列に並べる際には値の小さい順に並べる場合には次の様にします。  まず、E2セルに次の関数を入力して下さい。 =IF(SUM(E1),IF(COUNTIF($A:$A,">"&SUM(E1)),SMALL($A:$A,COUNTIF($A:$A,"<="&SUM(E1))+1),""),IF(ROW()=ROW(E$1)+1,MIN($A:$A),""))  次に、F2セルに次の関数を入力して下さい。 =IF($E2="","",COUNTIF($A:$A,$E2))  そして、E2~F2のセル範囲をまとめてコピーして、同じ列範囲の3行目以下に貼り付けて下さい。  又、値の小さい順ではなく、値の大きな順に並べる場合には、E2セルに入力する関数を次のようなものとして下さい。(F2セルの関数は前記のものと同じ) =IF(SUM(E1),IF(COUNTIF($A:$A,"<"&SUM(E1)),LARGE($A:$A,COUNTIF($A:$A,">="&SUM(E1))+1),""),IF(ROW()=ROW(E$1)+1,MAX($A:$A),""))

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

>番号は一つずつ表示させたいので以上や以下などだとできません それなら、ピボットテーブルですね。 番号 1 2 1 11 1 22 2 1 と先頭に項目名を付けて挿入-ピボットテーブルで番号を行ラベルと値に設定 値を右クリックで値フィールドの設定で「データの個数」を選択してください。

すると、全ての回答が全文表示されます。
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

貼付画像のような方法で良いでしょうか? C2=IFERROR(SMALL(A$2:A$9,SUM((TRANSPOSE(A$2:A$9)=C$1:C1)*1)+1),"") C2の数式はTRANSPOSE関数の戻値値が配列なので数式の確定時にCtrl+Shift+Enterの打鍵が必要です。 D2=IF(COUNT(C2),COUNTIF(A$2:A$9,C2),"") C2とD2を下へオートフィルコピーします。 尚、元データはA2からA9になっていますので、その範囲を対象にしてあります。 実際のデータ範囲に合わせて行番号を変更してください。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

COUNTIF関数を使ってください。 =COUNTIF(集計する範囲,条件式) です。 提示されてる例でいえば A1:A8が集計する範囲,B2に1とあれば =COUNTIF(A1:A8,B2) でA1:A8に1があるセルの個数を表示します。 条件式は、個別の値やセル参照でも構わないし等号・不等号を使ったものでも構いません。 条件が10未満の数値であれば =COUNTIF(A1:A8,"<10") 条件が10以上の数値であれば =COUNTIF(A1:A8,">=10") 条件が1以上10未満の数値であれば =COUNTIF(A1:A8,"<10")-COUNTIF(A1:A8,"<1") 複数のAND条件の場合EXCEL2007以降であればCOUNTIFS関数でも構いません 条件が1以上10未満の数値であれば =COUNTIFS(A1:A8,"<10",A1:A8,">=1")

ryiryilp
質問者

お礼

回答ありがとうございます えーと、 左側の番号は毎回ものによって変わるので固定した数字を入れたままじゃできません 番号は一つずつ表示させたいので以上や以下などだとできません

すると、全ての回答が全文表示されます。

関連するQ&A