[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『一番多く出現する数字、2〜6番目に出現する数字を教えて下さい。関数の数式もお願いします。』(kz)
先ほどどなたかの回答があったはずですが、誰か消してしまったのでしょうか?
とりあえず、A:F列に 2桁までの整数が入力されているものとして、 どこか適当なセルに、
=MATCH(LARGE(COUNTIF(A:F,ROW($A$1:$A$99)),ROW(A1)),COUNTIF(A:F,ROW($A$1:$A$99)),0)
と入力してCtrlとShiftキーを押しながら、Enterで確定、配列数式にします。 これが一番多く出現する数値。 そのまま下にコピーすると、二番目、三番目・・の数値が表示されます。
ただし、同じ順位の数値からあるとうまく行きません。 また、マイナスの数値とか小数点以下のある数値も考慮していません。 その場合は・・・ちょっとわかりません。 (sato)
数値の範囲は1〜43の整数ではないでしょうか。 おそらく L○t○? (Mook)
配列数式とか配列という概念自体が初心者の方にはわかりにくいかもしれませんが、 一応噛み砕いてます。
まず、ROW($A$1:$A$99) は1〜99までの数値の配列になります。 具体的に言うと{1,2,3,・・・・,99}というもので、この1から99の数値が A:F列にいくつあるかを調べます。
それが COUNTIF(A:F,ROW($A$1:$A$99)) という数式でこの値も配列になります。 例題の場合は、{5,1,8,1,・・・,0,0} となるはずです。 これは、最初に示した配列{1,2,3,・・・・,99}がA:F列にいくつあるかを示しています。 つまり、A:Fに1が5個、2が1個、3が8個・・・・99は0個あるということになります。
次にLARGE関数で、その配列の中から○番目に大きい値を探します。 ○番目、にあたる部分がROW(A1)です。 これは下にドラッグするとROW(A2)、ROW(A3)・・・と変わりますので それぞれ、1番目、2番目、3番目・・に大きい値を探すことができますね。
最後にMATCH関数で、その値が COUNTIF(A:F,ROW($A$1:$A$99)) の中で 何番目に出てくるかを探します。
一般的には何番目かがわかったら今度はINDEX関数でその値を検索する必要があるのですが、 今回の場合は1番目は1、2番目は2・・・というふうに決まっていますから MATCH関数の結果がそのまま求める値になるという訳です。
MATCH関数では検索値が2つ以上あっても最初に見つけた値しか表示出来ませんから、 同じ順位が2つ以上ある場合はうまくいかないと申し上げました。 これは、絶対に出来ないという意味ではなく、ROWやCOLUMNを組み合わせて 工夫次第ではたぶんできなくはないと思いますが、とりあえず私の回答はここまでとさせていただきます。
数式の内容をことばで説明するのは難しいのでうまく伝わったかどうかわかりませんが、いかがでょうか。 (sato)
別案。(前回回答よりコッチがいいんで前回削除)
H列に出す。
H1 =MODE(A1:F82)
H2 =MODE(IF(COUNTIF(H$1:H1,A$1:F$82),"",A$1:F$82)) CTRL+SHIFT+ENTER 確定。
H2を下へコピー。
※ちなみに消したのは
>先ほどどなたかの回答があったはずですが、誰か消してしまったのでしょうか?
これではないからねー。この解答の直前にした解答っす。
(GobGob)
ちなみにひとつしか無い数値は拾えまへん。(エラーとなります)
やりようはあるけど、必要なさそうなんで割愛。
(GobGob)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.