• ベストアンサー

エクセルの関数で特定の数字の利用回数を数える

複数のセル内に入っている数字の利用回数を数える 関数を教えてください。 (例)A列の1行目から3行目に入っている数字に対して    利用されている数字ごとに利用回数を求める。   |A 列| 1行|12345| 2行|135| 3行|125| 4行|関数1| 5行|関数2| 6行|関数3| 7行|関数4| 8行|関数5| 上記での結果は以下のようになります。 関数1は1の件数を数える⇒例では3件 関数2は2の件数を数える⇒例では2件 関数3は3の件数を数える⇒例では2件 関数4は4の件数を数える⇒例では1件 関数5は5の件数を数える⇒例では3件 よろしくお願いします。

  • momi2
  • お礼率40% (6/15)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。補足を拝見しましたがさっぱり要領が得ません。 実際のシートに即した例を掲げていただければ回答しやすいのですが、それがないので想像して書くしかないようですね。        A列  20行目 12345  21行目 1024A  21行目 78BC  21行目 457C のデータがあるとき、任意のセルに  =ROW(A1)-1 その右となりのセルに  =SUMPRODUCT(LEN($A$20:$A$23)-LEN(SUBSTITUTE($A$20:$A$23,ROW(A1)-1,""))) を貼り付けて下方向に9セル分コピーしてください。すると以下の結果が得られます。  0 1  1 2  2 2  3 1  4 3  5 2  6 0  7 2  8 1  9 0 次に7,8,9と続くセルの下に  =CHAR(64+ROW(A1)) を入力し、その右となりのセルに  =SUMPRODUCT(LEN($B$20:$B$23)-LEN(SUBSTITUTE($B$20:$B$23,CHAR(64+ROW(A1)),""))) を入力して下方向にコピーしてください すると  A 1  B 1  C 2 が得られます。 なお質問してから日数を空けて「補足欄」に何かを書き込んでも、回答者は補足が書き込まれたことに気づかないことが多いです。何日も前に回答してレスポンスがないものをわざわざ巡回しないからです。 そのようなときは「お礼欄」に補足内容を記載すると良いでしょう。お礼欄なら回答者にメールが飛びますので、何か書かれたことが分かります。(本質問の補足を読んだのは、本当に偶然です。いつもなら開かなかったと思います)

その他の回答 (2)

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

例データ A1:A4に 1234 234 61452 750 ーー 例えばB5に =SUM(LEN(A$1:A$4)-LEN(SUBSTITUTE(A$1:A$4,ROW()-5,""))) と入れて SHIFT,CTRL,ENTERの3つのキ-を同時押しする。 (配列数式) B5の式をB14まで複写する。 結果 頻度 数字(参考) 1 0 2 1 3 2 2 3 3 4 2 5 1 6 1 7 0 8 0 9 本件は連続数である場合で ROW()-5としてますが、個別の文字の場合は、そこに文字列1字を 直接入力してください。 A$1:A$4と4行の例にしてますが、自分のデータの行数により変えてください。 B5を0と出発点にしてますが、第1行から結果を出す場合は ROW()-1としてください。 ーー 文字列の中である文字の存在文字数を調べるのは、空白にSUBSTITUTE して、長さの減少数変化を見るのが定石です。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

質問にあるパターンであれば、A4セルに以下の式を貼り付けて下方向にコピーすれば求めることができます =SUMPRODUCT(LEN($A$1:$A$3)-LEN(SUBSTITUTE($A$1:$A$3,ROW(A1),""))) でも実際のシートは違うのではないかと推察しますが、$A$1:$A$3の部分だけを2カ所変更すれば良いはずです

momi2
質問者

補足

早速利用してみたのですが、確かに数は数えられて いるのですが、zap35さんのご指摘どおり実際のシートとは 違うために、問題解決はできませんでした。 問題その1)実際のシートとは違うので$A$1:$A$3の部分を       変更しただけでは対応できませんでした。       例えば、1行目から開始されるのではなく20行目       から開始されると、対象範囲を設定しなおしても       応えはでてこない。 問題その2)10以降はABC…といったように数字以外の文字が       利用されている。 すみません。

関連するQ&A

  • Excel 関数で上から順に数字を整列させる

    Excelで、下記表(例)に入力された数字を上から順に関数を用いて隣のB列に整列させたいです。 ・例 A1:A60の表があります。 ※以下A列に入力された数字とします 1 空白 2 20 3 空白 4 15 5 25 ・(省略、この間空白と考えて下さい) ・ ・ 59 10 60 空白 上記表(例)は、A2に20,A4に15,A5に25,A59に10それ以外は空白を表します。 上記表のセル内数字は全て手入力とします。 全てのセルが空白の場合もあります。 B列はB1:B5の5行です。 この入力された数字を関数を用いて、B列に上から順にB1に20,B2に15,B3に25,B4に10,B5は空白となるように整列させたいです。 B列セル結果は他シートに参照されますのでセルはロックを掛けています。 上記のことからデータの並べ替えも使えませんし昇降順でもありません。 上から順に整列させた数字を、B1:B5の5行内で上位5まで表示させます。 A列の行数が多いのでif関数も使えません。 なお、上記質問内に不明な点がありましたら補足させて頂きます。 以上、宜しくお願いします。

  • エクセル関数

    次のような場合の関数をご教示頂けないでしょうか? ・A列には、時々連続する通し番号が入っています。 例 1 2 3 4 4 4 5 6 7 7 7 7 7 8 ・B列には、A列が1個の数字の行には 0 が、複数の数字の行には 1 が入っています。 例 0 0 0 1 1 1 0 0 1 1 1 1 1 0 ・C列に、関数で次のように自動入力したいのです。  B列が 0 なら 0  B列が 1 のグループの先頭行には 1  B列が 1 のグループの途中の行には 2  B列が 1 のグループの最後の行には 3 例 0 0 0 1 2 3 0 0 1 2 2 2 3 0 どういう関数になりますでしょうか? よろしくお願い致します。

  • エクセルで連続回数などを調べたいです。

    エクセルで連続回数などを調べたいです。 なるべく簡単に出来る方法があればぜひ宜しくお願いします。 例えば      A列   B列 1行目   い    64 2行目   い   100 3行目   あ    30 4行目   あ    40 5行目   あ    20 6行目   い   -77 7行目   い -60 8行目   あ   -80 9行目   あ   -50 10行目   あ -100 ・    ・ ・    ・ ・ 800行目 というように数字が入っているとして、 1.A列が「あ」で、B列に「正」が連続で出てきた回数の最も多い回数を調べたい。  (A列が「い」の場合や、「正」では無く「負」の場合も) 2.さらに、1の結果それぞれの数字を合計したい。 というときはどんな式になりますでしょうか? 上の、1行目~10行目で言えば、 「あ」の場合の「正」の最大連続回数は「3」 「い」の場合の「正」の最大連続回数は「2」 「あ」の場合の「負」の最大連続回数は「3」 「い」の場合の「負」の最大連続回数は「2」 それぞれの合計数は 「あ」の「正」の最大連続回数「3」の合計数が「90」 ・・・・ のように出したいのです。 それぞれの答えを入力するセルは違います。 こちら、関数もよく分からない状態です・・・。 マクロなどは、「マクロ」という言葉しか分からない状態です。(すいません・・・) 大変お手数をおかけ致しますが、お詳しい方がいらっしゃれば、どうぞ宜しくお願いします。

  • エクセルと関数について

    エクセルと関数について 売店チケット 件数 料金 性別 6000 2 6000 男 6000 0 6000 女 上記のような表をエクセルで作成しました。 左からA列 売店チケット B列 件数 C列 料金 D列 性別です。 売店チケットは3000円単位で、6000円だと2件になります。 でも、手打ち入力なので、ミスすることも多く、B列の0件はエラーで、正しくは2件なのです。 そこで質問なのですが、関数で もし、A列に金額が入っていれば(ゼロ以外)、B列の0は数字上 おかしいので、エラーを表示するような数式を作りたいです. 例えば、E列の1行目に「エラーですよ」的な表示はまとめてできますか? B列は1行目から3000千行目位までデータが入っているとします。 売店チケットに金額の表示があるのに、B列が一件でもゼロだと間違いなのです。 うまく表現できていないかもしれませんが、よろしくお願いします。

  • 2つの数字の変化を読み取るエクセル関数はありますか

    エクセルの関数についてです。2つの数字の変化を A列  B列 100    1 103    1 109    1 120    1 105    -1 102    -1 120    1 123    -1 ・    ・ ・    ・ ・    ・ となっている時に,以下の2つの条件を満たす式を作ることはできますでしょうか。 (1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す (2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次は,B7なので120,次はB8なので123…と 数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出すようにしたいのです。 やはりマクロを組まないといけないのでしょうか? 分かりにくかったら申し訳ございません…

  • エクセル関数で教えてください。

    例えば、A列の1行目からA列の100行目まで社員の名前が重複せずに100人分あります。B列1行目からW列100行目までにランダムに数字が入っています。数字は重複していません。この、数字(例えば5という数字)のセルの場所を特定したいのですが、関数でこの場所を特定する方法を教えていただけませんか? 結果的に必要なのは、5という数字が何行目にあるかだけですので、それだけ分かれば良いのですが。良い方法が見つかりません。 今回はマクロは一切使わない条件です。よろしくお願いいたします。

  • エクセル(excel)の計算式(関数)について

    エクセル(excel)の計算式(関数)でよいアイディアがありましたら教えてください。 1行目は項目行です。 セルA1から右に15列=セルO1まで、 a | b | c | d | e | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 と入っています。 2行目からデータとして、 セルA2から右に5列=セルE2まで、 4 | 2 | 2 | 1 | 1 と入力したとします。(データ例(1)) あるいは、 セルA3から右にセルE3まで、 6 | 3 | 0 | 0 | 0 と入力したとします。(データ例(2)) 1つのデータの5個の数字のルールは2つで、 「合計で10以下である。」 「左から順に小さくなるか、同じ数字となる。」 です。 (目的は、) このとき、F列からO列にかけて、 データ例(1)のケースでは、 a | a | a | a | b | b | c | c | d | e データ例(2)のケースでは、 a | a | a | a | a | a | b | b | b | と表示されるように、 つまり、項目行の下にある数だけ、その列の1行目の記号を 1(F列)から右に向かって順に埋めていくような、 F列からO列までの2行目以下に入れる適当な計算式(関数)は ないでしょうか。 拙い説明で申し訳ありません。どなたかよい考えをお持ちの方がいらっしゃいましたらと存じます。 どうぞよろしくお願い致します。

  • EXCEL連続した回数のカウント

    エクセル初心者です。 連続した数字の回数のカウントの仕方が分からず困っております。 A列に0と1が50個並んでいます。 50個の0と1はその並び順が変化します。 1が先頭から5個以上、連続して並んだ時に、その1が連続した回数を特定のセル(例えばB1)に表示するようにしたいのです。 下の例1ではA3から1が8個連続していますので、B1のセルに8が入るようにしたいのです。 並びが変わりますので、先頭のA3が0の例2や、1が5個以上連続しない例3の場合は、B1のセルは空白のままになるようにしたいのです。 1が先頭のA3から5個以上連続した時だけ、その先頭から連続した回数(個数)を数えるようにしたいのです。 どうぞよろしくお願いします。 (例1)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 10行 1 11行 0 12行 0 ・ (例2)   A列   B列   C列・・ 1行 2行  3行 0 4行 1 5行 1 6行 1 7行 1 8行 1 9行 1 ・ (例3)   A列   B列   C列・・ 1行 2行  3行 1 4行 1 5行 1 6行 1 7行 0 8行 0 ・

  • Excel関数

    Eccel2003を使用して以下のような入力作業を行っております。 A列~C列のセルに「1~10」いずれかの数字を入力して行きます。 入力パターンは (1)A列だけ入力 (2)A列とB列に入力 (3)A列~C列全てのセルに入力 の3パターンです。 複数の列に数字を入力する場合((2)及び(3))、同じ数字を入力することはありません。 【例】     A B C D  1  5  4  1  2  6  3   1 2  4   2 4 5  ・  ・  ・ このとき、A~C列に一つでも該当の数字(ここでは2と4と5)が入力されていた場合に、 ある文言(30文字くらい)をD列に反映させたいのですが、何か良い関数等ありますでしょうか?    ※ 上記例の場合、1,3,4行目のD列に文言を反映 例の4行目のように全ての列に該当の数字を入力することもあります。 ご教示頂きたく何卒宜しくお願い致します。

  • エクセル関数の詳しい方ご教示ください。

    エクセルの詳しい方、ご教示ください。 A B C D E F G(表示したい列) 1行目 2 3 5 7 9 2 =知りたい関数 2行目  4 5 8 9 1 2 上記のようなランダムな数値データがあり、 ・Aの列に表示している数字の数だけ、 ・Bから右の列に移動した数字を、 ・Gの列に表示したい と、思っています。 例で考えると、 G1のセルは7 G2のセルは2 と表示されるイメージです。 Gにはどのような関数を使えばよいでしょうか?

専門家に質問してみよう