エクセルの機能と関数の科目です。
「名前の定義、入力規則とVlookup関数は中級者への一歩」
基本中の基本、Vlookup関数ですが、これも使い方で深いです。
今回も OneDriveのフォルダにある、EMS出荷管理②のファイルを開いてください。...
このファイルにはマクロは含まれていません。
Vlooup関数 指定した一番左の検索して、合致したセルの右側を
表示します構文は
Vlookup(検索値、範囲、表示する列番号、検索の方法)です。
検索方法は
近似値を含めて検索 True(省略した場合はTrue) 或いは 0
完全一致で検索 False 或いは 1
、料金表のシートを
で設定します。
1、最初に、True(近似値の検索)の例を紹介します
料金表シート I4セルの =VLOOKUP($H4,$A:$E,2,TRUE)
について説明しましょう。
H4には、料金を調べたい重量入れます。
範囲は A~E列で、左端列 A列には、料金に対する重量が
昇順に並べてあります。B列以降は地域別の料金となっています。
表示する列は 2なので、A列を検索して右へ2に列目でC列の
値を表示します。
検索方法が True で近似値を検索しますので、
完全に一致する重量でない場合は、その未満の値で検索を終了
つまり、200gを検索させたら4行目の1が対象となります。
検索値と一致しなくてもエラーはひょうじされませんが、
A列がきちんと昇順並んでいる表を準備することが必須です。
2、次に、False(完全の検索)の例です。
出荷記録の L列を見てください。 L1に検索値として
送り状ドロップダウンで選択できるようにしてあります。
L2の関数 =VLOOKUP(L1,C:G,2,FALSE)
範囲がC~G列で左端のC列を検索
完全に行の右へ2列でD列を表示
検索方法が False で完全一致した場合で エラーが表示されます。
そこで、エラーを防止するために、L1セルには入力規則を
必ず合致する送り状番号しか入力出来ないようにします。
完全検索する場合は、入力規則と、エラーが発生しないように
鉄則ですので覚えておいてください。
3、いよいよ関数の組み合わせになります。
出荷記録のG列(一個の料金)を表示させる関数
VLOOKUP(E2,料金表,MATCH(D2,地域名,FALSE),TRUE))
1で紹介したVlookup関数、列番号に
MATCH(D2,地域名,FALSE) が入っています。
ここで、地域名には セルの範囲を名前で指定しています。
リボン 数式 の中央にある 名前の管理 をクリックすると
設定された名前の一覧が表示されます。
地域名は、料金表の3行目にある地域となっています。
出荷記録のシートでは、D列に 発送先の地域名
E列に 貨物の重量を入力すると
料金表から縦横に検索して料金が表示されます。
その横検索が Match関数、その構文は
Match(検索、範囲、検索方法)だけです。Vlookup関数より
簡単だと思います。検索値を探して何番目にあるか数値で返します。
検索方法は、Falseなので、完全一致になります。
エラーが発生しないように、検索値であるD列は入力規則が
設定されています。
ここまで、大丈夫ですか。
4、更に上級関数になります。
後納郵便差出票のシートの送り状番号C11以下の関数です。
=IF(ROW(A1)>H$2,"",INDEX(出荷記録!C:C,G$2+ROW(A1)-1))
最初に、動作を見てみましょう。
出荷記録のシートに続けて日付で適当にデータを追加します。
H1セル指定した日付のデータが複数表示されます。
Vlookup関数では、一対一でしか表示できませんので
Index関数使っています。その前に
H2、G1、G2に関数が入っていますので確認します。
G1 =MAX(出荷記録!A:A) 出荷記録の日付最大
差出票の印刷を実行する日付になるでしょう。
H2 =COUNTIF(出荷記録!A:A,後納郵便差出票!G1)
該当する日付のデータの個数
G2 =MATCH(G1,出荷記録!A:A,FALSE)
該当するデータがある最初の行番号
が関数で入れてあります。
INDEX(出荷記録!C:C,G$2+ROW(A1)-1))
Index関数は、INDEX(範囲、表示する行番号)
Row(A1)は、A1セルの行番号で 1
式を下へコピーするごとに Row(A2)となるので
1,2,3・・と単に数値が増えていきます。
INDEX(出荷記録!C:C,該当する日付のデータの最初の番号+ROW(A1)-1))
となりますので、出荷記録のシートのC列を該当する行から
順に下の行を表示させています。
しかし、これだけでは、不要な部分も表示されるので
IF(ROW(A1)>H$2,"", でがいとうするデータの個数以上場合は
空白しています。
よ~く考えてみるとなんだこりゃと云った感じではないでしょうか。
5、最後に4の式の応用です月単位データのシートを開きます。
3行目にある、年と月を変更すると、該当する年月のデータ一覧
が表示されます。
わかり易い所でC列の関数
=IF(ROW(A1)>F$3,"",INDEX(出荷記録!G:G,F$1+ROW(A1)))
を上の説明を紐解いてみてください。
B列とD列は、更に応用に手法は同じです。
たぶんにしばらくは、ここで悩む方多いと思いますが、じっくりと
勉強してみて下さい
何か急にハードルが上がった感じがしますよね。