人気ブログランキング | 話題のタグを見る

[Excel セル関数] 設定変更可能な移動平均フィルタを実現する

どーもボキです。

OFFSET関数やINDIRECT関数を用いれば、設定変更が可能な移動平均フィルタ処理を実現できる。

仕事や趣味で数値データを扱うとき、移動平均処理をかけたい!ってこと、あると思う。
そんなとき、移動平均フィルタの強さ(平均火する範囲、「フィルタウィンドウ幅」という)を変更したいとき、手でセル関数を変更していない?

これはセル関数を組み合わせればカンタン!
マクロなんて使わなくてOK!!

オススメは「OFFSET関数」。
合わせて紹介する「INDIRECT関数」、これも他でも使える超便利な関数なので、覚えておこう。

下図にて、青グラフはノイズ重畳した信号、赤グラフは移動平均処理したグラフ。
E列はOFFSET関数、F列はINDIRECT関数にてフィルタ処理したもの。どちらの関数を使っても同じ結果が得られる。
H4のdata countを変更すれば、フィルタ特性を変えられる。
[Excel セル関数] 設定変更可能な移動平均フィルタを実現する_a0021757_09393107.png

OFFSET関数


OFFSET関数(参照, 行数, 列数, 高さ, 幅)の適用方法
参照:フィルタ対象セル
行数:フィルタウィンドウの先頭データ行
列数:フィルタ対象セルからの移動列数のため、変更なし(=0)
高さ:フィルタウィンドウ幅(=対象データ数)
幅:フィルタ処理データ幅のため、変更なし(=1)
[Excel セル関数] 設定変更可能な移動平均フィルタを実現する_a0021757_09421055.png

INDIRECT関数


INDIRECT関数適用の考え方
  1. ADDRESS関数を用いてセルアドレス文字列を作成する。
    セルアドレス文字列には、ROW関数やCOLUMN関数を利用し、セル関数移動・コピーに対応させておく(COLUMN関数でなく、列番号には数値を指定してもよい)。
  2. セルアドレス文字列を連結し、レンジ文字列を作成する。
  3. INDIRECT関数で、レンジ文字列をアドレス情報に変換する。
  4. AVERAGE関数で、アドレス情報を処理する。
[Excel セル関数] 設定変更可能な移動平均フィルタを実現する_a0021757_09422999.png

関数ヘルプの呼び出し方法

関数の使い方をググるのもよいけども、技術を理解したいならヘルプを読む習慣を身に付けたほうがよい。
ググって分かり易いページを探しまわる手間、その時間をヘルプを読む時間に充てれば、最初は取っ付きにくいヘルプもすぐに読み慣れる。

ヘルプへのアクセスは、下図のように関数名をクリックする、これが手っ取り早いカナ。
[Excel セル関数] 設定変更可能な移動平均フィルタを実現する_a0021757_09425566.png

ダウンロード


by yozda | 2020-09-27 09:58 | プログラミング | Comments(0)