Excel関数 もし~なら 別Sheetのデ-タを自動入力

エクセルの便利な関数「VLOOKUP」の使い方の説明です。

もし「1」という値を入れたら、別シートのデータを参照して数値を読み込んで自動入力という関数です。




出勤簿の例を使って説明したいと思います。

セルC6に入れたコードにより、Sheet1に書いているデータをD6に呼び出す為に、D6に、

「=IFERROR(VLOOKUP(C6,Sheet1!$A$1:$B$5,2,FALSE),””)」

と入力しています。

IFERROR(×××,””)というのは、×××は関数の式が入るのですが、もし何も入力が無い時には空白にするという時に使うものです。

これを使わないと値が未入力の際、#N/Aと出てしまって見栄えが悪くなります。

他にも例えば、「=IF(E6=””,””,E6+E7) 」などと、もしE6が空だったら空白にするよという指定もできます。

Excel関数 もし~なら 別Sheetのデ-タを自動入力

これが実際入れている感じのスクショですが、IFERRORを記入しているので、#N/Aが出ていません。

次に、関数ですが、

=IFERROR(VLOOKUP(C6,Sheet1!$A$1:$B$5,2,FALSE),””) 

の赤字の部分が別シートから呼び出す為の関数になります。

「VLOOKUP」 が、次のデータを参照しますよーという関数で、

「C6」は値を入力する時の場所。

「Sheet1!$A$1:$B$5 」にあるデータを参照という意味で、Sheet1にあるA1からB5までのデータという意味。

「2」は2行目のデータを書き出しますという意味です。

「FALSE」は、この値と完全に一致している時にのみ有効と返す文句です。TRUEの場合は不完全な一致でも返してくるのでFALSEを使うのが良い。

Sheetの後ろに「!」を付けることで外部を参照するように指定しています。

「$」は数値をコピーする際に、マウスでドラッグしても参照先が固定になるように記入しています。

Excel関数 もし~なら 別Sheetのデ-タを自動入力

これが呼び出している別シートになるSheet1のデータです。

1と入れたら山田、3と入れたら佐藤と呼び出すことができます。

次に3行目にある時給を、勤務時間に掛け合わせて自動で計算する設定です。

入力した値に対して、別シートに記入した値を掛け算させる方法になるのですが、その前にまず時間は、セルの書式設定のユーザー定期で、[h]:mmという風に[]でhを囲いましょう。

24時をまたいだ時間の計算方法

24時をまたいだ時間を正確に計算するために、G列に入れる式は次の式を使います。

=IF(E6=””,””,IF(F6<E6,F6+1-E6,F6-E6))

赤字のところの、IF(F6<E6,F6+1-E6,F6-E6)の説明です。

それ以外は、何も入力されてない時に空白になる設定ですので気にしないでください。

E6がF6より大きかったら、F6に1を足してからE6を引く、それ以外は普通にF6-E6という式になります。

24時をまたいだ場合、マイナスになってしまうのをこれで回避できます。

エクセル もし~なら~ 別シートのデータを掛け算

H列に入れる別シートに書いている時給から、G列の勤務時間をかけて給料を計算する計算式です。

=IFERROR(VLOOKUP(C6,Sheet1!$A$1:$C$5,3,FALSE)*G6*24,””) の赤字のところが、給料を計算する計算式になります。

「VLOOKUP」 が、次のデータを参照しますよーという関数で、

「C6」は値を入力する時の場所。

「Sheet1!$A$1:$C$5 」にあるデータを参照という意味で、Sheet1にあるA1からC5までのデータという意味。

「3」は3行目のデータを書き出しますという意味です。

「FALSE」は、この値と完全に一致している時にのみ有効と返す文句です。TRUEの場合は不完全な一致でも返してくるのでFALSEを使うのが良い。

ここで普通にG6を書けた場合、G6に入っている数値が時間になっているので、普通の数値と違う。

6.3が6時間と30分という値になる為なんだけど、これを回避するのが、24をかけてしまえば普通の数値と同じになるので、24をかけましょう。

別にここが普通の数値だったならば24を書ける必要はないのだけど、時間なのでこうなりました。

コメントをする(スパム対策で認証制にしています)

*
*
* (公開されません)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください