0

[columnA=time:columnB=data] 千ものデータ ポイントがあります。

私がやろうとしているのはこれです:別のシートに時間値の表があります。データ ワークシートのデータ列 (列 B) で対応するセルを見つけ、その前の 5 つのセルとその後の 40 のセルの値の平均を返したいと考えています。

質問を検索することで、探している正確な値のセル アドレスを返すこの数式を思いつきましたが、それを平均数式に入れることはできません。

=CELL("address",INDEX('EMG Data'!B1:B10000,MATCH(C5,'EMG Data'!A1:A10000,0),1))

C5 は、データ値のペアを取得したいことがわかっている時間値です。

4

1 に答える 1

1

代わりに、平均、オフセット、一致の組み合わせを使用します。オフセットを使用すると、範囲内の行/列の数を変更できます。

=IFERROR(AVERAGE(OFFSET($B$1,MAX(MATCH(C5,A:A,0)-6,0),0,46)),"SOMETHING IS WRONG")

マッチ

MATCH() は、列 1 で正しい値を見つけ、その位置を A:A で返します。

オフセット

セルB1と比較して対応する行にオフセットするには、行う必要がありますMATCH()-1(そうしないと、セルA1の一致で1が返され、B1が1行オフセットされ、B2の値が表示されます!!

B1 を 0 列分オフセットしたいので、それを 3 番目のパラメーターとして入れます。

さらに、前に 5 行も取得したいので、これはMATCH()-6、使用する負の行番号を持つ行からデータを取得しようとするのを避けるためMAX(MATCH()-6,0)です。

前に 5 セル、高さを 5 + 1 + 40 = 46 セルにしたい場合は、高さパラメーターの数値で OFFSET パラメーターを完成させます。

平均

最後のステップは、実際の平均を取得することです。OFFSET()関数はセルの範囲を返すため、これはAVERAGE関数の通常の範囲入力と見なされます。

イフエラー

探している値が列 A:A に見つからない場合MATCH()、ネストされた関数を介して機能するエラーが発生します。ほとんどの場合、そのようなイベントをキャプチャしてIFERROR()、エラーをユーザーフレンドリーなものに変換するか、その場合の代替関数/結果

于 2013-05-02T06:14:41.530 に答える