• 締切済み

EXCELである数字の下の行の数字をずべて(6個)引用し引用された数字

EXCELである数字の下の行の数字をずべて(6個)引用し引用された数字の出現率を求める関数をおおしえください。 例を見ていただきますと数字(13)の下の行の出現数字は9行目まででみますと2行目 01 09 16 20 21 43 と 7行目 07 19 21 23 33 35となっている状態です。 01 09 16 20 21 23 33 35 43の数字が出ている表になります。 その各数字の出現率を表示させたいのですがどなたかお教えいただけませんか。  1~43の各数字の下の行にある 数字(43種類)の各出現率を求めたいとおもっています。 どうかよろしくお願いします。 また関数で不可能の場合ほかのほうほうでできるようでしたらお教えください。      A    B     C    D     E     F 1    02    08    10    13    27    30 2    01    09    16    20    21    43 3    01    05    15    31    36    38 4    16    18    26    27    34    40 5    09    15    21    23    27    28 6    06    12    13    25    28    38 7    07    19    21    23    33    35 8    11    16    19    20    42    43 9    11    19    23    38    39    42                 ・                 ・                 ・ 1000   01    03    19    21    35    39

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No1,2,3です。 これまで多くの時間を使って解答してきましたが、実際にどのよなケースでこのようなことが使われるんでしょう。追加のご質問についてはこれまでの回答を参考にご自分で解決されることを希望します。 ごめんなさいね。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

ごめんなさい。シート2のB2セルに入力する式が誤っていました。次の式を入力してオートフィルドラッグしてください。 =IF(COUNT(INDEX(Sheet1!$H:$JE,2,MATCH(B$1,Sheet1!$H$1:$JE$1,0)):INDEX(Sheet1!$H:$JE,1000,MATCH(B$1,Sheet1!$H$1:$JE$1,0)+5))=0,0,COUNTIF(INDEX(Sheet1!$H:$JE,2,MATCH(B$1,Sheet1!$H$1:$JE$1,0)):INDEX(Sheet1!$H:$JE,1000,MATCH(B$1,Sheet1!$H$1:$JE$1,0)+5),$A2)/COUNT(INDEX(Sheet1!$H:$JE,2,MATCH(B$1,Sheet1!$H$1:$JE$1,0)):INDEX(Sheet1!$H:$JE,1000,MATCH(B$1,Sheet1!$H$1:$JE$1,0)+5))) 先の式ではJAでしたがJEの誤りでした。

James-Bond-007
質問者

お礼

ありがとうごさいます こちらこそ教えていただいている身でありながらすみません あとここからシート3に6個の数字を入れにシート2の出現率からシート3にある6個の数字の下に来る出現率が高い数字をシート3に10個表示させる方法はありますか?

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答No1です。 シート1のH2セルには先の式ではなく次の式を入力してJE2セルまでオートフィルドラッグしたのちに44行まで下方にもオートフィルドラッグしてください。 =IF($A2="","",IF(COUNTIF($A1:$F1,ROUNDUP(COLUMN(A1)/6,0))>0,INDEX($A2:$F2,MOD(COLUMN(A1)-1,6)+1),"")) 先の式では該当する数値の1行下の行の同じ列での値を拾っていました。上の式では該当する数値のある1行下の行のすべての数値を拾っています。 他の操作は先に示した通りです。

James-Bond-007
質問者

補足

早速のご回答ありがとうございます。 実際やってみたのですがAR列がすべて0になってしまいました。。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

関数を使っての方法ですが次のようにすればよいでしょう。 お示しの表がシート1のA1セルからF1000セルの間に有るとします。 シート1には作業列を作って対応します。 H1セルには次の式を入力してJE1セルまでオートフィルドラッグします。 =IF(AND(ROW(A1)=1,(MOD(COLUMN(A1)-1,6)+1)=1),ROUNDUP(COLUMN(A1)/6,0),"") それによって1行目には7行目ごとに1から43までの数値が表示されます。 次にH2セルには次の式を入力してJE2セルまでオートフィルドラッグしたのちに1000行下方までもオートフィルドラッグします。 =IF($A2="","",IF(INDEX($A:$F,ROW(A1),MOD(COLUMN(A1)-1,6)+1)=ROUNDUP(COLUMN(A1)/6,0),INDEX($A:$F,ROW(A2),MOD(COLUMN(A1)-1,6)+1),"")) それによって1行目に表示されている数値の1行下の数字が6列単位で表示されます。 そこでお求めの表ですがシート2に表示させるとして B1セルからAR1セルまでには1から43までの数値を入力します。 さらにA2セルからA44セルまでにも1から43までの数値を入力します。 B2セルには次の式を入力し、AR2セルまでオートフィルドラッグしたのちに44行目までの下方にもオートフィルドラッグします。 =IF(COUNT(INDEX(Sheet1!$H:$JA,2,MATCH(B$1,Sheet1!$H$1:$JA$1,0)):INDEX(Sheet1!$H:$JA,1000,MATCH(B$1,Sheet1!$H$1:$JA$1,0)+5))=0,0,COUNTIF(INDEX(Sheet1!$H:$JA,2,MATCH(B$1,Sheet1!$H$1:$JA$1,0)):INDEX(Sheet1!$H:$JA,1000,MATCH(B$1,Sheet1!$H$1:$JA$1,0)+5),$A2)/COUNT(INDEX(Sheet1!$H:$JA,2,MATCH(B$1,Sheet1!$H$1:$JA$1,0)):INDEX(Sheet1!$H:$JA,1000,MATCH(B$1,Sheet1!$H$1:$JA$1,0)+5))) これで1行目に示した数値のその下1行目に有る数値(A列に有る数値)の出現率が表示されることになります。場合によってはB2セルからAR44セルまでの範囲の表示形式をパーセントスタイルにしても良いでしょう。

関連するQ&A