MS Excel UDF - 時系列差

MS Excel UDF - 時系列差

データの操作について助けていただきたいです。条件:

i) 例えば「MaxR」行と「MaxC」列の範囲「oRng」、ii) 1となる整数i

「MaxR」行と「MaxC」列の新しい範囲「nRng」を取得する最も簡単な方法を見つけたいと思います。

1 <= r <= i かつ 1 <= c <= MaxCol の場合:

nRng.Cells(c,r).値 = NA()

i+1 <= r <=MaxR かつ 1 <= c <= MaxCol の場合:

nRng.Cells(c,r).Value = oRng.Cells(c,r).Value - oRng.Cells(c,ri).Value

これを実行する最も効率的な方法が、私がまだ理解していない巧妙なワークシート関数を使用するのか、それとも UDF (コーディング方法がわからない) を使用するのかはわかりません。

どのような助けでも大歓迎です。どうもありがとうございます。

答え1

ワークシート関数を使用すると、簡単に結果を得ることができます。データが Sheet1 の A1 から始まっていて、質問の「i」として使用する「shift」という名前付き範囲があるとします。新しいシートの A1 に入力する数式:
=Sheet1!A1-OFFSET(Sheet1!A1,-shift,0)

関連情報