読者です 読者をやめる 読者になる 読者になる

Powerpoint VBAを使おう!

Powerpoint VBAやExcelのVBAで遊んでいます。Word VBAも始めました。

Excel Row関数とColumn関数とVLOOKUP

仕事で,今までなんで思いつかなかったのか,びっくりしたことがありました。

ほんとに あれぇ?という感じ。

時間はないので手短に書きますが,

VLoopup関数はとても便利で,VBAでやらないときはとても感謝する関数ですが,その列を与えるときに直接値を与えてしまうため,数式のコピーがうまくできなくて,いつももやっとしていました。

f:id:chemiphys:20170424221432p:plain

第3引数の列のところです。直接値を入れてしまうもんだから,横にコピーしても数値をいちいちどうにかして変えないといけないんですよね。

今まではどこかにその列情報を書いておいてそこを参照するとか,置換を使うとかしか思いつかずに,VLOOKUPはとても便利だけどここだけはめんどくさいよなぁと思っていました。

なんででしょう,今日はふっとColumnと打ち込んでみたくなって(VBAのせいとしか思えないけど)打ち込んでみたら
f:id:chemiphys:20170424221745p:plain

普通にそれらしきワークシート関数がありまして,

期待通りの答えを返します。

=VLOOKUP($G$12,$A$1:$C$15,COLUMN(B1),FALSE)

Columnの中身を相対参照にしておけば,コピペと一緒にきちんとずれていってくれますし,足したり引いたりしてずらすとか,掛け算等を併用すればどうにでも値は操作できる。

なんでこんな簡単なこと思いつかなかったのか,愕然としつつ,これでだいぶ楽になるやんとラッキーな気分です。

ちなみにROW関数もあるので, ワークシートの INDEX関数やMATCH関数,OFFSET関数と併用してやれば大概のことはやれますね。

今まで直打ちしていた列や行の引数もコピペに対応させれるように書けますね。

とても地味で小さな発見でしたが,今後とても楽になるなーと思う出会いでした(ΦωΦ)

ちなみに引数を省略すれば,そのセルの行や列を返してくれるようです。これも応用しがいのある挙動。

もっと早く知っておくべきでした(;´▽`A``