
EXCEL2007 各行列にmedian関数でメディアンフィルタをかけ違うシートに処理後の値を出力
今,A1から順に640×480の整数が.csvファイルで保存されています.
上記の行列にmedian関数を使用して3×3の中央値を求め,それを下記の画像のように中央のセルの値と中央値を置き換えます.
この処理を640×480の行列に適用して(一列目と一行目は除く),画像処理にあるメディアンフィルタをかけようと思っています.
ですがmedian関数を使用しても下記の画像のように中央値しかえられず,640×480のセルに適用するのには時間がかかりすぎます.
そこで,上記の処理を行いかつ,処理後の640×480の中央値を別のシートに同じ配列で出力をしたいのですが,できるでしょうか?
おそらくマクロやVBAを利用するのでしょうが,自分は今まで扱ったことがなく困っています.
一応本を買い,読んでみたのですが上記の処理はいろいろな機能が合わさっているため実行するにはどうしたらいいのかわかりません.
どなたか,アドバイスまたは何をどのように使えば上記の処理ができるか教えてください.
よろしくお願いします.

No.3ベストアンサー
- 回答日時:
私が
http://oshiete1.goo.ne.jp/qa5443577.htmlで答えた通り、別シートのマトリックスを参照するように書いて希望のサイズにド
ラッグで複写するだけなんだけどね。1セルずつ置き換えちゃダメ
ですよ。全ての画素は独立なんだから。
ちなみに古~いMacの2004で128x128を処理するのに数秒かかる程度
です。一番時間がかかったのは適当な画像を拾ってASCIIで出力す
るところかな。

この回答への補足
grumpy_the_dwarfさん二度の回答ありがとうございます.
再度質問なんですが,上記の処理のやり方がいまいちわかりません.
Sheet2のA1に画像にあるように=MEDIAN(OFFSET(Sheet1!B2,-1,-1,3,3))と打ち込んで,あとはそのセルの右下はじカーソルを持っていき+を希望のサイズの所まで持っていけばよいのでしょうか?
わかりにくい説明で申し訳ありませんが,もう一度手順について詳しく教えてください.
よろしくお願いします.
No.2
- 回答日時:
#1のご回答の方法で関数式の複写機能を使って、関数でも出来るようです。
しかしメヂアン値を飛び飛び複写するなら良いが、メディアン値を連続行に出したいときはどうなるのかな。
ーーー
VBAでは範囲はRange(Cells(i,"B"),Cells(i+2,"D"))
のようになるので(B,C,D列の場合)
たてまとまりが3行の場合は
For i=1 to 1000 Step 3
のように左上隅のセルを3つづつ飛ばして(Srep 3)捉えて、最終行まで、繰り返せば出来ると思う。
ーー
また
Sub test01()
m = Application.WorksheetFunction.Median(Range("A1:C3"))
MsgBox m
End Sub
でMedian関数が、VBAからでも使えることを確認した(VBAでは使えない関数もあるので注意)。
やって見てください。
計算されたメヂアン値を受けるセルはCells(k、”S")=m
K=K+1
のようにやる。kは書き指すセルの行ポインタとして使うもの。
次々次行につめて書きだされる。
No.1
- 回答日時:
>A1から順に640×480の整数
sheet1にデータを入れます。
sheet2には、3×3の中央値を求めるため
B2=IF(AND(MOD(ROW(),3)=2,MOD(COLUMN(),3)=2),MEDIAN(Sheet1!A1:C3),"")
と入力して640×480の範囲にCopy
sheet3に求める表を作ります。
=IF(Sheet2!A1="",Sheet1!A1,Sheet2!A1)
と入力して640×480の範囲にCopy
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelの中央値の複数条件について 3 2022/05/24 21:22
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) この関数と同じ処理をVBAで行うにはどうしたら良いでしょうか? これは、1列の中に同じ値が複数存在し 21 2022/07/07 07:48
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
エクセル
-
【マクロ】アクティブセルの時...
-
【マクロ】A列にある、日付(本...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】3行に上から下に並...
-
【条件付き書式】シートの中で...
-
【マクロ】EXCELで読込したCSV...
-
【エクセル】期限アラートについて
-
【マクロ】列を折りたたみ非表...
-
【マクロ】WEBシステムから保存...
-
【マクロ】オートフィルターの...
-
Excel 複数のセルが一致すると...
-
エクセルに、105と入力すると、...
-
3〜400人分のデータをExcelで管...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報