VBAの高速化!まずは関数の使い方!文系初心者も使えるはず

 

いたちめです。

 

前回の内容で、コピペするだけで簡単高速化を行いました。

そして

関数をセルに入力することで高速化を計ります。

 

の前に、

 

関数の使い方と利用方法について説明します。

 

 

 

関数をセルに入力させるメリット・デメリット

メリット

これはデータベースを作ったときに特に感じます。

例えば在庫管理。

関数であれば、VLOOKやSUMIF、SUMIFS等が利用できます。

 

VBAのみだと

For next でFindを利用して、数値を格納して…

格納する数も行数が増えるにしたがって増えていくから…

 

おっと!もう、面倒臭いんだが?

 

「しっかりやらないとスキルアップできないゾ」

とか上から目線な理系さんがいれば、論点ズレてます。

 

「らく」に「簡単」に「効率」を上げさえすればいいんです。

手段が目的になったら、その時点で面倒臭い

 

てことで、

VBAの標準モジュールは極力、スカスカにして

メンテナンス性の向上も図れます。

 

まぁ、For nextでfindを利用してもいいんでしょうけど、

セルに関数入力させる方が、速いでしょ。

 

デメリット

最初にデータベースの骨子を完成させておく必要がある。

VBAで入力させる関数の入力が面倒臭い

特に列がズレたときとか、

 

お前、ふざくんなよ!

これ以上データ増やすなよ!

また途中から修正せなアカンやん!

 

と、鬼の形相になる

 

 

スポンサーリンク

関数の基礎のキソ

関数を利用するときには、ルールがあって

このルールを破ってしまうと、エクセルさんは動いてくれません。

 

ルールが大好きな委員長タイプだと思って下さい

 

間違っているところは

「ここが違うよ!」ってざっくり説明してくれます。

幼馴染属性も持っているのでね。

 

 

2つほど覚えておきたい基礎の上級編

絶対参照

例えば=SUM(C1:C3)なんて関数をセルに入れていて、

B列に列を追加したら=SUM(D1:D3)なんて感じでズレます。

 

これを防止するのが絶対参照

 

セルを参照するところを相対ではなく、絶対にします。

 

すごく、簡単で「$」を使います。

 

=SUM($C$1:$C$3)

=SUM($C1:$C3)

=SUM(C$1:C$3)

 

みたいに使います。どう変化するかは、試してみて☆

 

文字として認識させる

IF関数でよく使うことになります。

 

=IF(A1=りんご、りんご、ごりら)

 

だとエラーになります。

 

これまた簡単で、「“」を使って、文字を囲います。

 

=IF(A1=“りんご”、“りんご”、“ごりら”)

 

数値の場合は「“」は使いません。

空白は「“」を二つ並べて「”“」としてあげるだけです。

 

 

これさえ理解できればデータベースは余裕で作れる関数四天王

基本的に、この4つの関数をセルに入力させたり

合わせ技一本にして入力させれば

大体のデータベースは作れる。

 

ここにないものは、各自で適当に探して下さい。

 

IF

VLOOKUP

ISERROR

SUMIFS

 

タニシでも理解できる簡単な説明

IF:イフ。もしもな条件に合うか合わないかを判定するよ

 

式: IF( 条件式 、 条件にあう 、条件にあわない )

 

条件式って書くと堅っ苦しいけど「これってどう思う?」ってこと

 

A1のセルに書かれてる文字ってりんごかな?

→当たり前だろ!りんごだよ。

→お前、アホだな。ごりらだよ。

 

これを数式にすると、

 

IF(A1 =“りんご”、“りんご”、“ごりら”)

 

になるわけです。

 

 

VLOOKUP:ブイルック。指定した文字や数値を指定した範囲の中から探すよ

 

参考までに、横に探したいときはHLOOK。

VLOOKを使って検索をかける列よりも、左側を検索するときはMACH。

 

式 :VLOOKUP(検索する内容、検索する範囲、検索する列数、検索の仕方)

 

これも理解すれば、クソ簡単。

 

ごめん、ごりら探してきて。

A1からZ100までのセルのどこかに逃げてるから

A1から数えて、10列目のどこかに逃げたんだよね

オランウータンとかじゃないからね?ごりら。メンドイから間違えないでね?

 

これを数式にすると、

 

VLOOKUP(“ごりら”、A1:Z100、10、FALSE)

 

になるわけです。

 

 

ISERROR:イズエラー。エラーを表示させないよ

 

セルに「#VALUE!」って表示されているところを見たことがある人!

この「#VALUE!」を表示させない様にして

「FALSE」か「TRUE」で返事するよ!

 

式:ISERROR(判定したいもの)

 

なあ、10 ÷ 2 っていくつ?

→5だろ。

 

なあ、10 ÷ □ っていくつ?

→空白だと答えられないよね?バカなの?

 

わる数(2や空白)をA1セルに入力するときは

 

ISERROR(10/A1)

 

となるわけです。

 

 

SUMIFS:サムイフス。俺は手札からSUMIFSを召喚!IFの複数条件下でSUMを発動!

単独条件であれば、SUMIFでSが付きません。

合計したい範囲の中で、

いくつか条件出したものにあうものだけを知りたい。

 

式:SUMIFS( 合計したい範囲、条件指定範囲①、条件①、条件指定範(以下ry )

 

 

なぁ、持ってる漫画(C列)の中で、何冊あるか教えて欲しいんだけど。

ジャンルは、ヴァンパイア(B列)がでてくるもの

まぁ、できれば完結(C列)したものがいいな

→40冊あるぞ。

 

これを式にすると

 

SUMIFS(C1:C100、A1:A100、“ヴァンパイア”、B1:B100、“完結”)

 

 

さて、四天王は攻略できましたか?

 

 

次回は複合技一本の説明をしてから、

VBAでセルに関数を入力させるやり方を説明します。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事