日々精進

新しく学んだことを書き留めていきます

エクセル関数

エクセルでよく関数を使うのだが、複雑な関数になると計算結果に別名を付けたくなる。
例えば、今日書いた数式は以下のようなもの。

=OFFSET('Sheet1'!$D$2,INT((ROW()*2+COLUMN(F24)-9+INT((ROW()*2+COLUMN(F24)-9)/80)*20)/10),MOD(ROW()*2+COLUMN(F24)-9+INT((ROW()*2+COLUMN(F24)-9)/80)*20,10))



これだとなに書いてるかわからないけど、インデントを入れて整理すると大分わかりやすくなる。

=OFFSET('Sheet1'!$D$2,
 INT(
  (
   ROW() * 2 + COLUMN(F24) - 9 + INT((ROW() * 2 + COLUMN(F24) - 9) / 80) * 20
  ) / 10
 )
 ,MOD(
  ROW() * 2 + COLUMN(F24) - 9 + INT((ROW() * 2 + COLUMN(F24) - 9) / 80) * 20,10
 )
)


このなかにROW() * 2 + COLUMN(F24) - 9が繰り返し現れているのでこれにCOUNTという別名を付けられれば
<BR>
=OFFSET('Sheet1'!$D$2,
 INT(
  (
   COUNT+ INT((COUNT) / 80) * 20
  ) / 10
 )
 ,MOD(
  COUNT+ INT((COUNT) / 80) * 20,10
 )
)



となり、ずっと見やすくなる。
さらに、コメントを追加できれば

=OFFSET('Sheet1'!$D$2,
 INT(
  (
   COUNT + INT((COUNT) / 80) * 20 //81〜100番目までをスキップするためにINT(〜を追加
  ) / 10
 )  //行指定 データ10件ごとに改行
 ,MOD(
  COUNT + INT((COUNT) / 80) * 20,10
 )  //列指定 データは4列目〜13列目に入っていると仮定
)



というふうにさらにわかりやすくなる。
ちょっと調べてみたけど、別名を付ける機能、コメントを入れる機能はないっぽい。残念。。
インデントを使うと括弧の対応などがわかりやすくなるのでオススメです。