• ベストアンサー

MODE関数で

エクセルのMODE関数で最頻値を求めるときに、最頻値が同数あった場合の表示は正しくなされないのでしょうか。 試しに A,1.1.2.3.4. B,1.1.2.2.3 この二つの列をそれぞれ求めた時に、A,は1になり、Bは1と2になるはずなのですが、 B,は1と表記されます。 1と2ですよ~、っていう表記のされ方はないでしょうか。。。 

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

  • ベストアンサー
回答No.2

B2セルに =IF(SUM((FREQUENCY($A$2:$A$12,$A$2:$A$12)=MAX(FREQUENCY($A$2:$A$12,$A$2:$A$12)))*1)<ROW(A1),"", INDEX($A:$A,SMALL(IF(FREQUENCY($A$2:$A$12,$A$2:$A$12)=MAX(FREQUENCY($A$2:$A$12,$A$2:$A$12)),ROW($A$2:$A$12)),ROW(A1)))) [Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる) 下へオートフィル もっと良い案があるかも。たたき台ということで。

pom-i
質問者

お礼

お返事遅れて申し訳ありません。 理屈はほぼ分かりませんが、出来ました。 コピペしようと思います。 私には難題だったようです。。。

その他の回答 (4)

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

FREQUENCY函数で対応できます。 ーー 同じ出現回数の場合どうなるか、疑問におもったら Googleで「MODE関数 同一値」で照会すれば良い。 http://ohpa.net/modules/xlnote/content0086.html >30も4個,50も4個で,ともに同じ出現回数ですが,30の方が先に出てくるため,30を最頻値とします。 ーーー こんなところへ質問しなくても、いまどきは、情報が蓄積されて、エクセルの関数の定義的な疑問など、WEB照会で回答が得られるのだ。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

ではExcel2007向けに少し簡素化して。 A1:A5にネタ数字があるとすると =IFERROR(SMALL(IF(FREQUENCY(A:A,A:A)=MAX(FREQUENCY(A:A,A:A)),$A$1:$A$5),ROW(A1)),"") をCtrl+Shift+Enterで入力,下向けにコピー。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 無理やりって感じの方法です。 ↓の画像のように作業用の列(表)を使います。 (データはA列2行目からE列までとします) 作業列G2セルに =IF(COUNTIF($A2:A2,A2)>1,COUNTIF($A2:$E2,A2),"") という数式を入れ列方向と行方向にオートフィルでコピーしておきます。 結果のM2セルに =IF(COUNTIF($G2:$K2,MAX($G2:$K2))<COLUMN(A1),"",INDEX($A2:$E2,,SMALL(IF($G2:$K2=MAX($G2:$K2),COLUMN($A$1:$E$1)),COLUMN(A1)))) これは配列数式になってしまいますので、この画面からM2セルにコピー&ペーストする場合は そのままコピー&ペーストだけではエラーになるか、まともに表示されません。 M2セルに貼り付け後、数式バー内で一度クリック! 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 このM2セルを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 尚、元データに重複がない場合は結果は空白になってしまいます。 以上かなり泥臭い方法ですが、他に良い方法があればごめんなさいね。m(__)m

回答No.1

MODE関数では、一番最初に出た最頻値のみ表示されるようです。 2010から、 MODE.MULT関数で対応しているようです。 http://office.microsoft.com/ja-jp/excel-help/HA010345299.aspx?CTT=5&origin=HP010335649

pom-i
質問者

お礼

使っているのは2007でした。 諦めるほかなさそうですね。。。

関連するQ&A