在庫管理表の作成3回入庫票と出庫表Part3
Excel2016,2013技BEST 19回
入庫表と出庫表にINDEX関数の数式
在庫管理用の3回目です。
今回は、出庫表にテーブルの構造化参照を使った数式を入力します。
テーブルの構造化参照というと、難しそうですが、実際には、とても便利な機能です。さらにインスタントフォームというのを使って
vba を使わずにフォーム入力する方法もご紹介します。
入庫表と出庫表では INDEX 関数と Match 関数を使って 商品リストから 商品名や色サイズを 取得します。
Excelバージョン:
(サンプルファイルは、こちらから 在庫管理1回サンプルデータ)
行と列を求めるMATCH関数の数式
はじめにIndex 関数を使うためには行番号列番号が不可欠です その行番号列番号はMATCH関数で求めることができます。では入庫票で 行番号を求める場合の例を見てみます。 =MATCH(In[@CODE],Item[CODE])

列番号の場合は、 以下のようになります。
=MATCH(In[[#見出し],[商品名]],Item[#見出し],0)

そして index 関数の 引数 行番号列番号に当てはめてやります 。参照先は商品リストのテーブル Itemとなります。

商品名を取得するための数式は次のようになります。
=INDEX(Item,MATCH([@CODE],Item[CODE],0),MATCH(In[[#見出し],[商品名]],Item[#見出し],0))

列番号を取得するMATCH関数の部分で#見出し行 というのは見出し行全体のことです。 In[[#見出し],[商品名]]で、Inというテーブルの見出し行にある商品名を指定したことになります。

数式を入力 して enter キーを押します。

となりの色の セルの数式は 商品名と同様に、 商品名の部分を色と変えて数式を入力します。
=INDEX(Item,MATCH([@CODE],Item[CODE],0),MATCH(In[[#見出し],[色]],Item[#見出し],0))

同様にセルの数式は 商品名と同様に、 商品名の部分をサイズと変えて数式を入力します。 =INDEX(Item,MATCH([@CODE],Item[CODE],0),MATCH(In[[#見出し],[サイズ]],Item[#見出し],0))

入庫表の商品名、色、サイズに数式がすべて入力され商品の詳細が表示されるようになりました。

出庫表に構造化参照を使った数式
今度は 出庫表の商品コード を 入庫票と同様の offset 関数を使ったドロップダウンリストにしてやります。

さらに、 Ctrl + Tでテーブルに変更します

そして入庫表と同じように、 INDEX 関数と Match 関数を使って 商品リストから 商品名や色サイズを 取得します。数式もほとんど同じです。唯一列番号を求める部分のテーブル名を出庫表のテーブル名Outにします。

色を取得する数式は以下のようになります。

インスタントフォームを利用する
フォームを利用するためにクイックアクセスツールバーにフォームコマンドを追加します。クイックアクセスツールバーの その他のコマンドをクリックします。

エクセルのオプションダイアログが表示されるのでコマンドの選択からすべてのコマンドを選択します。

フォームのアイコンを探します。 フィルター の次にあります。

フォームを選択し追加ボタンをクリックします。

オプションダイアログを閉じます。

クイックアクセスツールバーにフォームコマンド ボタンが追加されています。

フォームが起動すると 日付やコードで商品を検索したり数量などを入力することができます。
