• ベストアンサー

エクセルの数式の組み方

A列には、昇順に並んだ時間か記載されています。 B列には、そのTimeベースでのデータが記載されています。 そこでですが、セルを2つ使い、それぞれ時間を入れることによってその時間の範囲でのデータの平均が出せるような数式がくみたいです。 ご教授願います。 A列(時間) B列(データ)     1     5     2      4 2     2     3      ↑  3     6     ↑   入れた時間範囲の 4     3 A列のデータを  データ平均が 5     4 2つ入れる   表示するようにしたい

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

  • ベストアンサー
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.3

otiotiさん、おはようございます。 結論からいうと =AVERAGE(INDIRECT(ADDRESS(MATCH(C1,A:A,0),2)&":"&ADDRESS(MATCH(C2,A:A,0),2))) と御記入いただければ解決できるものと思います。 以下、数式の解説を行いますので、お時間がおありでしたら御参照ください。 MATCH(C1,A:A,0) で、A列に書かれている数字群から、セルC1で書かれている数字(ここでは2)の書かれている行番号を返します。 従って、ここでは2(行目)となります。 ADDRESS(行番号,列番号)で、セルの番地を文字列で返します。従って、 ADDRESS(MATCH(C1,A:A,0),2) は、この場合ADDRESS(2,2) になるので、$B$2 という文字列が返ってきます。同様に ADDRESS(MATCH(C2,A:A,0),2) は、$B$3 という文字列が返ってきます。 数式中の「&」は文字を連結させる記号ですので、 ADDRESS(MATCH(C1,A:A,0),2)&":"&ADDRESS(MATCH(C2,A:A,0),2) は、「$B$2:$B$3」という文字列を作り出すことになります。 この文字列をExcelにセル範囲ですよと認識させるために、INDIRECT関数を使います。 INDIRECT(ADDRESS(MATCH(C1,A:A,0),2)&":"&ADDRESS(MATCH(C2,A:A,0),2)) は、セル範囲B2からB3までですよという意味です。このセル範囲の平均を取るために、AVERAGE関数を使ってやればよいのです。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 こういう式は、何を入れても同じだけれども、なるべく式の重複は避けようとするなら、このようになるかな? =AVERAGE(INDIRECT("R"&MATCH(C1,A:A,0)&":R"&MATCH(C2,A:A,0)&"C2",0))

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 二つの数字の平均値ではなく、範囲に対する平均値ですから、例えば、Offset 関数などを使ったらどうかな? =AVERAGE(OFFSET(B1,MATCH(C1,$A$1:$A$5,0)-1,):OFFSET(B1,MATCH(C2,$A$1:$A$5,0)-1,)) 省略スタイルが使えるので、いくつかの関数を検討してみましたが、他よりは格好が付きそうな気がします。

回答No.1

C1セルとC2セルにデータを入れてある場合の平均値の出し方は =AVERAGE(VLOOKUP(C1,A:B,2,FALSE),VLOOKUP(C2,A:B,2,FALSE)) です。 もしA列に無いデータを入力すると #N/A が表示されます。

関連するQ&A

専門家に質問してみよう