• ベストアンサー

EXCELでSavitzky-Golay法

EXCELでSavitzky-Golay法 仮にノイズを含むデータがEXELのA列に時系列で出力されているとします. これにSavitzky-Golay法を用いてスムージングを行いノイズを低減したいのですが,EXCELの機能で簡単にできないものかと考えています.ですが上記の式などを見ているとVBAでプログラムを組まないとできそうにない気もするのですが,EXCELの機能だけでSavitzky-Golay法を適用することはできるでしょうか? どなたか経験のある方回答をお願いします.

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

ずばり回答ではないが、感じるところを記してみます。 (1)Excelのメニュー(リボン)を辿って、Savitzky-Golay法を用いてスムージングはズバリはでて来ないと思います。移動平均程度は出てきます。Excelではグラフー近似曲線の追加、辺りが近縁関係だと思います。 だだし http://www.keep-on.com/excelyou/2003lng1/200302/03020119.txtの中ほどの回答に、近い線までの議論は出ているのでは (2)Googleででも「エクセル Savitzky-Golay法」で検索してみましたか。 ずばり同じ過去の質問もありますよ。 http://soudan1.biglobe.ne.jp/qa220622.html ただ満足な回答かどうかはある。 (3)質問するカテゴリ Excelを使うにしても、この質問コーナー(オフィスソフト)で扱う質問(操作とか関数単独適用)とは タイプが違います。Savitzky-Golay法の理解が必要だからです。 参考 https://www.hulinks.co.jp/support/flexpro/v7/dataanalysis_SavitzkyGolay.html だからエクセルのカテゴリより、質問閲覧者は少ないかもしれないが、理工系の、研究者が見ていそうなカテゴリに質問を出すべきでは。 (4)VBAでプログラムを組まないとできそうにない・・ VBAを使うまでの入り口は極く易しい。しかし上記(A)のアルゴリズムをプログラム化するには、文系プログラマ(会計、在庫、検索などの処理中心)では難しいと思う。 (5)いまの時代はソフト(コンピュタによる処理機能)は作るより、使う時代です。 Savitzky-Golay法がメニューにあるソフトを探すべきでしょう。 http://www.lightstone.co.jp/origin/Origin6/Origin6features.htm 買う金がないと言われると苦しいが。 「vector Savitzky-Golay法」で照会してみるとか。 ーー 10行程度の簡略模擬データを示して、Savitzky-Golay法を、もし筆算・電卓でやるとするなら(少しは語句による表現、例「(移動)平均をとる」など、なら、一々細かい仮定を説明しなくても、言葉で表して質問しても良かろう)こうなる、という説明をいただけるなら、日ごろのここでの回答者でも回答できるかもしれない。

関連するQ&A

  • エクセルVBAでテキストを出力したい

    エクセルVBAでテキストを出力したいのですが、 やり方がわからないので教えてください。 仮にSheet2のA列に文章があるとして、 シート全体を1つのテキストファイルとして出力し、 ファイル名をSheet1のA1セルにしたいです。 同じような質問もあるのですが、ファイル名に関しては、 ちょっと見当たらなかったので質問しています。

  • エクセルVBAにて アルファベットを数字に変換

    エクセルで、例えば J列は10列目で、 AB列は28列目ですよね。 VBAにて 入力がJだったら10を出力、 ABだったら28を出力 してくれるコードってどう書けばいいのでしょうか?

  • エクセルのセルにVBAで(  )付の式

    エクセルのVBAで作業していますが、1つの列の全ての行を (  )付けとしたいのですが、式をお教え下さい。 例えばD列に数値AB123と入れたら(AB123)となるようにしたいのです。 現在のVBA式にはD列のカラミはありません。 単純に追加すればいいと思いますので・・・・ よろしくお願い致します。

  • excel vbaでのxml出力がわかりません

    EXCEL VBAでAPIを使い、XMLファイルを出力するプログラムを作っているのですが、うまくいきません。 機能としましては、指定したセルの範囲内にユーザーが入力した値を、XMLファイルとして出力するというものです。 ただXMLファイルを出力するだけなら自力でできたのですが、XMLファイルにセルの値を入れることができません。 どなたかご教授願います。

  • エクセルの処理速度について

    エクセルは約65000行とIVまでの列がある膨大なセルで構成されていますよね。 65000行に文字を入力しても、検索すると瞬時に見つけ出します。 わたしがVBAでプログラムを組むとすると、各セルが検索する文字と同じかどうかを一つのセルごとに確認します。 そうするとすごく時間が掛かるのですが、エクセルのメニューにある検索機能があんなに速く検索できるのはどんな秘密があるのですか?

  • Excel VBAを外部プログラムから組み込む方法

    Microsoft SQL ServerのReport Service機能を使って、データの一覧をExcelに出力するようなツールを作りました。 次に、出力されたExcelにデータを追記して、SQL Serverのテーブルにデータを書き戻すということをしようとしています。 そこで、出力されたExcelに、書き戻しボタンを組み込んでしまおうと考えたのですが、外部のプログラムからExcelにマクロを組み込むにはどうしたらよいのかがわかりません。 書き戻しボタンを持つフォーマットファイルを用意しておいて、そこにデータを出力する、というやり方もあるかとは思いますが、Report Serviceが勝手にExcelへの出力をやってくれるので、今回はそのやり方ではなく、外部からVBAを組み込むという方針で考えております。

  • java 出力されたexcelを並べ替え

    お世話になっております。 現在javaでexcelを出力するプログラムを組んでおります。 excelには無造作に1列目に一桁の数字が入って行きます。 行数はこちらで指定しているのですが、その出力されたものをプログラム上で自動的に昇順に並べ替えてくれるプログラムはあるのでしょうか? excelで並べ替えれば早いことなのですが、javaの方から実行できないかと考えております。 調べても出てこなかったのでお知恵をいただければと思います。 よろしくお願いします。

    • ベストアンサー
    • Java
  • VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

    マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

  • エクセルのマクロを使って、例えば、「大阪太郎」を、「25」という数字に

    エクセルのマクロを使って、例えば、「大阪太郎」を、「25」という数字に一発&ごっそり変換したい。 上記の1件だけなら、エクセルの「置換」を使ってやればいいのはわかるのですが(実際、そのようにやってみたのですが、結構、大変だったものですから・・・)、実は、このような変換を、毎月、約70件こなさねばならない(つまりは、約70人分ある)ので、どうにか効率化できないかと調べた結果、「マクロ」というものを使って、そこに変換式(プログラム)を入れて、「適用」させれば、うまく行くのでは?と思い至りました。 「大阪太郎」→「25」、「東京次郎」→「26」、「北海道三郎」→「27」とかいう、そういう具合に、変換するのを、エクセルの「置換」を使わずに、変換のためのマクロ(VBA?)を一度だけ組んでしまって、後は、毎月、ポチッとボタンを押す、というようにしたいのです。 こういうことが、果たしてできるのかどうか、もしできるのなら、どういうプログラムを組めばよいのか、入り口だけでもよいので、ご教示いただけるでしょうか? (ちなみに、ウェブ検索したのですが、漢字の文字列をカナ変換するとか、そういう「変換」のためのページはたくさん出てきたのですが、私の希望する、特定の文字列を、数字に変換するためのページなどは、(ニーズが無いせいか)見つけることができませんでした。 以上、なにとぞよろしくお願いいたします。

  • EXCELで数式入力ボックスに直接式を書くのと、EXCEL VBAでプ

    EXCELで数式入力ボックスに直接式を書くのと、EXCEL VBAでプログラムを書く場合と、何が違うのでしょうか? 素人なのでよく分かっていないのですが、つまりEXCELでこんなことしてみたい!と思ったときに、どちらを使えば良いのかの判断はどのようにつければ良いのですか?

専門家に質問してみよう