- ベストアンサー
エクセルの数式の組み方
A列には、昇順に並んだ時間か記載されています。 B列には、そのTimeベースでのデータが記載されています。 そこでですが、セルを2つ使い、それぞれ時間を入れることによってその時間の範囲でのデータの平均が出せるような数式がくみたいです。 ご教授願います。 A列(時間) B列(データ) 1 5 2 4 2 2 3 ↑ 3 6 ↑ 入れた時間範囲の 4 3 A列のデータを データ平均が 5 4 2つ入れる 表示するようにしたい
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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)
こんばんは。 こういう式は、何を入れても同じだけれども、なるべく式の重複は避けようとするなら、このようになるかな? =AVERAGE(INDIRECT("R"&MATCH(C1,A:A,0)&":R"&MATCH(C2,A:A,0)&"C2",0))
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 二つの数字の平均値ではなく、範囲に対する平均値ですから、例えば、Offset 関数などを使ったらどうかな? =AVERAGE(OFFSET(B1,MATCH(C1,$A$1:$A$5,0)-1,):OFFSET(B1,MATCH(C2,$A$1:$A$5,0)-1,)) 省略スタイルが使えるので、いくつかの関数を検討してみましたが、他よりは格好が付きそうな気がします。
- googoo-takokaina
- ベストアンサー率40% (4/10)
C1セルとC2セルにデータを入れてある場合の平均値の出し方は =AVERAGE(VLOOKUP(C1,A:B,2,FALSE),VLOOKUP(C2,A:B,2,FALSE)) です。 もしA列に無いデータを入力すると #N/A が表示されます。