• ベストアンサー

エクセル 直近入力データの最大値

セルE1からF1 G1…と右方向にデータを入力しています。A1に直近5つのデータの最大値を表示させたいです。例えばE1~Z1までデータを入力したとすると、直近5つ最大値とはV1~Z1の最大値ということです。どんどん右方向にデータを入力していくのですが、A1に直近5つのデータの最大値を表示させたいです。これを実行させる関数式を知りたいです。関数式でできるのかはわかりませんが・・・。よろしくお願いします。

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

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

私なら、単純に、  =MAX(OFFSET(E1,,MAX(COUNT(E1:IV1)-5,0)):IV1) とします。 ・データ数が5未満なら、開始列はE列 ・データ数が5以上なら、開始列を「データ数-5」だけ右方にずらす ・開始列から最終列(IV)までのMAXをとる 直近7個なら、  =MAX(OFFSET(E1,,MAX(COUNT(E1:IV1)-7,0)):IV1) ※例えば、K1までデータが入っている場合、【L1より右にはデータがない】わけですから、  開始セルがG1であることさえわかれば、終了セルやセル幅を特に定めなくても、  G1:IV1についてMAXをとれば十分です。

その他の回答 (1)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆これでいかがでしょうか? A1=MAX(OFFSET(E1,,COUNT(E1:Z1)-1,,-MIN(5,COUNT(E1:I1))))

kozou1126
質問者

補足

ご回答ありがとうございます。 列の最後がIVなので、 A1=MAX(OFFSET(E1,,COUNT(E1:IV1)-1,,-MIN(5,COUNT(E1:I1)))) として使用します。 追加でお伺いしたいのですが、 直近5個のデータを直近X個(10・20・・・)と変更したい場合、 「5」と「I1」を変更しますよね。この「I1」を変更させずに?、 うまく出来る方法はありませんか? よろしくお願いします。

関連するQ&A

  • エクセル 直近入力データの平均・合計

    セルA5からA6 A7…と下方向にデータを入力しています。A1に直近5つのデータの平均、A2に直近5つのデータの合計を表示させたいです。例えばA1~A100までデータを入力したとすると、直近5つのデータ平均とはA96~A100の平均ということです。どんどん下方向にデータを入力していくのですが、A1に直近5つのデータの平均、A2に直近5つのデータの合計を表示させたいです。これを実行させるマクロ、関数式を知りたいです。関数式でできるのかはわかりませんが・・・。よろしくお願いします。

  • EXCEL 同一データ入力したいです教えて下さい。

    A1セルに入力したデータをB1にも入力できるようにしたいです教えて下さい、コピー貼り付けを使わず関数を使って出来るようにしたいです。お願いします

  • エクセル2000で、数式が変わるのを防ぎたい。

    1 セルのA1:Z1には=A11 =B11 ・・・=Z11という式が入っています。 2 セルのA2:Z10には表の名前とか、項目名、数式が書いてあります。 3 一回目のデータの入力は、11行目A11:Z11でおこないます。 4 二回目以降のデータ入力は、11行目に、行の挿入を三回おこなってからやります。 またデータの入力は11行目でおこないます。 しかし、このとき、セルA1:Z1の=A11 =B11 ・・・=Z11という式は、=A14 =B14 ・・・=Z14に変わっていて、1行目に入力できません。 5 行の挿入はマクロでやっていますので、ここで=A14に変わった式を=A11に戻せないかどうか聞きたかったのです。 6 ここで作りたい表は、ここのサイトと同じように、新しいデータが上のほうに、古いデータが下にくるようにしたいのです。前にやったのは、データの入力の最後に必ず入力する項目があったので、そこで、マクロで11行をコピー、1行に貼り付けをやっていました。しかし、今回は、最後に必ず入力する項目もなく、また入力しないセルもあります。 7 他に、同じことができるアイデアがあったら、教えてください。 マクロの実行ボタンはすでに二個あるので増やしたくありません。 よろしくお願いします。

  • エクセルで最新の最小値をだしたいのですが、、、

    エクセルで、最新の最小値をだしたいのですが、 MIN関数で最小値はだせるのですが、 最小値が同じものが複数あり、 一番新しいデータ入力日の最小値を 表示したいのでずが、 一番古いデータ入力日のものが 最小値として呼び出されてしまいます。 OR等を使って式を入力してみたのですが、 エラーがでてうまく値がだすことができません。。。 データは、C1からZ1までデータ入力日がはいっています B2からZ50まで数字がはいっています。 それぞれの行ごとの最小値をA列に表示させたいと思っています。 さらにそのあと、B列に、最小値のデータ入力日も表示させたいと 思っています。 ↓A2セルには、”10”  B2セルには、”3/11”と表示させたいのですが...  =MAX(MIN($C2:$Z2)*$C1:$Z1) こんな感じで作ってみたのですが、VALUEのエラーが でてしまいます。。      A列  B列  C列  D列  E列・・・ 1行目          2/10 3/10  3/11・・・ 2行目          10    15  10 ・・・  3行目          20    25  30 ・・・ ・ ・ ・ どなか分かる方どうか教えてください。 よろしくお願いします。

  • 入力された整理番号の最小値から最大値までを通し番号にしてデーターを振り分ける

     初めまして、よろしくお願いします。  セル上にランダムに整理番号をA列に、そのデーターをB列に順に乗せていきます。 例)     A    B    C     1   3   100 2   5    50 3   2    10 4   9     1 5   7    20 6 7 8 9 10 11  これを任意の場所(別シート)に     A    B    C 1 2   2    10 3   3   100 4   4     0 5   5    50 6   6     0 7   7    20 8   8     0 9   9     1 10 11 12  となる様な表を作りたいと思います。A列に入力された整理番号の最小値から最大値まで、入力されなかった番号まで(ここでは4,6,8)自動で通し番号となるよう表示し、B列のデーターを振り分けられる関数をよろしくお願いします。

  • エクセル2000で連続データが入力できなくなりました。

    エクセル2000で連続データが入力できなくなりました。 エクセル2000を使っていますが、最近になってマウスを使った連続データの入力ができなくなりました。 以前は、例えば下記の手順で連続データが入力できました。 ・A1のセルに「1」と入力して ・A1セルの右下隅にマウスカーソルを合わせて ・右クリックするとメニューが表示されて、連続データ入力可能 最近になって、スプレッドシート上ではマウスカーソルが常に十字型で矢印になりません。 ツールバー等に移動した場合は矢印になりますが。 連続データができなくなった原因や解決法をご存じの方いらっしゃいましたら、何卒ご教示下さいますようお願い致します。

  • 【エクセル2003】 不規則に入力された数字がある列の中で最大のものを探すには?

    いつも、お世話になってます。 シート1とシート2とシート3のそれぞれのセルA1列~A50までに、200以下の数字が不規則に入力されています。 同じ数字はありません。 シート1のB1に3つのシートのA1~A50のセルに入力されているうち、最大の数字を表示させたいのですが、どのような式になりますでしょうか。 よろしくお願いします。

  • エクセル関数のデータ表示がすぐされない

    エクセルで或るセルにデータを入力したら別のセルにデータ表示されるように「関数」を使っています。 例えばA1のセルに生年月日を入力したら隣のB1に満年齢が表示されるというようにです。 以前はA1に生年月日を入れたらすぐにB1に満年齢が表示されていたと思うのですが、いつの間にやらすぐには表示されなくなりました。 そして、保存をしようとすると、入力したセルの関数が変換表示されて、保存されます。 以前のように、入力したらすぐに関数の値を表示するには、どうすればよいのでしょうか?

  • 入力された整理番号の最小値から最大値までを通し番号にしてデーターを振り分け、集計する

     初めまして、よろしくお願いします。  前回同じような質問で、  セル上にランダムに整理番号をA列に、そのデーターをB列に順に乗せていきます。 例)     A    B    C     1   3   100 2   5    50 3   2    10 4   9     1 5   7    20 6 7 8 9 10 11  これを任意の場所(別シート)に     A    B    C 1 2   2    10 3   3   100 4   4     0 5   5    50 6   6     0 7   7    20 8   8     0 9   9     1 10 11 12  となる様な表を作りたいと思います。A列に入力された整理番号の最小値から最大値まで、入力されなかった番号まで(ここでは4,6,8)自動で通し番号となるよう表示し、B列のデーターを振り分けられる関数をよろしくお願いします。  と質問したところ、 ◆別シートのA1の式 A1=IF(AND(ROW()>=MIN(Sheet1!$A$1:$A$10),ROW()<=MAX(Sheet1!$A$1:$A$10)),ROW(),"") ★下にコピー ◆別シートのB1の式 B1=IF(A1="","",IF(COUNTIF(Sheet1!$A$1:$A$10,A1),VLOOKUP(A1,Sheet1!$A$1:$B$10,2,0),0)) ★下にコピー という答えをいただき、実行したのですが、A列に同じ番号が再び入力したら合算して表れるようにならないでしょうか。 例)A10に整理番号2が入力された場合、データーの10が、合算され、集計場所に20と表示されるようにする。     A    B    C     1   3   100 2   5    50 3   2    10 4   9     1 5   7    20 6 7 8 9 10  2    10 11  これを任意の場所(別シート)に     A    B    C 1 2   2    20 3   3   100 4   4     0 5   5    50 6   6     0 7   7    20 8   8     0 9   9     1 10 11 12  このようになるようにしたいのですが、どうすればいいのでしょうか。また、紹介して頂いた関数の指定範囲を広げても、関数を貼り付ける位置をA1、B2ではなく、A5、B5と、下の位置に貼り付けるとずらした分の最初の数字が表示されなくなりました。何とか下へずらして貼り付ける方法は無いでしょうか、紹介された関数でなくてもかまいませんので、よろしくお願いします。

  • あるセルにデータが入力された日を表示

    A列(A1)のセルにデータが入った場合、D列(D1)にそのセルに データが入力された日付を表示させたいのですが、どのように やったらいいでしょうか?TODAY関数を使うと毎回更新されて しまいます。 TEXT関数+TODAY関数で出来るかな?と思ったのですが、 =TODAY()を使うとセルに入力された日でなくて、ファイルを開いた 日付に毎回更新されてしまいます。 A列のセルにデータが入った時にD列にその入力日を表示させたい のです。こういう事は簡単に関数を使って出来ませんか?わかる方 がいれば教えてください。

専門家に質問してみよう