Excelのこととか色々

Excel のこととか楽天とか いろいろ書いてみます・・・

【VBAスタンダードに挑戦!】ワークシート関数(LARGE/SMALL/VLookup関数)

【VBAスタンダードに挑戦!】

f:id:tuna-kichi:20200614200940p:plain

 

本日の5分勉強の内容

 

 

********************************************************

ワークシート関数

・ワークシートで使用している関数をマクロでも使用できる

・WorksheetFunction. 関数名 (引数)

・引数はワークシートで使用するとき と同じように指定する

・記述方法は VBA のルールに従う
 例) A1 (ワークシート) vs Range("A1") (VBA)

・ワークシート関数では呼び出せない関数もある
 例えば、セルの中で使用する If 関数は、マクロでは使えない
 (同じ書き方で使えない)

・使用できる関数はヘルプで確認するか、
 WorksheetFunction. (ドッドまで)を記述すれば、
 候補が表示されるので、そこで確認する

 f:id:tuna-kichi:20200808171740p:plain

 

Large 関数

・指定した範囲の数値から、何番目に大きい数値を取り出す

・一番大きい数値であれば Max 関数が代用できる

・WorksheetFunction.Large(範囲, 順位)

Small 関数

・指定した範囲の数値から、何番目に小さい数値を取り出す

・一番小さい数値であれば Min 関数が代用できる

・WorksheetFunction.Small(範囲, 順位)

 

f:id:tuna-kichi:20200810085823p:plain

 

Range("F7") = WorksheetFunction.Large(Range("C2:C9"), Range("E7"))
Range("G7") = WorksheetFunction.Small(Range("C2:C9"), Range("E7"))

赤枠の範囲の中から、青枠の順位の金額を入力する

                      

 

VLookup 関数

・指定した表の一番左の列から指定したデータを検索して、
 見つかったデータと同じ行の、指定した列のデータを取り出す

・WorksheetFunction.VLookup(検索値, 検索範囲, 列番号, 検索方法)

 

f:id:tuna-kichi:20200810091603p:plain

 

Range("F2") = WorksheetFunction.VLookup(Range("E2"), Range("B2:C9"), 2, 0)

 

赤枠の表の一番左の列に青枠のデータが存在したら、
表の左から2列目のデータを入力する(見つかったデータと同じ行)

※データを上から順に検索して、最初に見つかったデータの値を取得するので、
 一番左端のデータはユニークでなければ正しいデータを取得できない

 

ユニーク = Unique・・・唯一、一意、固有

********************************************************

 

Large/Small 関数は初めて知りました。

なかなか便利そうな関数ですね。

並べ替えの時に使えそうです。

 

VLOOKUP関数はとってもお世話になっております。

今の業務ではユニークな ID を使用しておらず、

ユニークなIDを作成するところからなので、ちょっと面倒です。

 

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/