つづきを展開
社員番号をVLOOKUPで拾い上げ、右に時給が出たとする、それは値か、文字列か?
基本的には、時給は「値」である。
ただし、正確にはこう言うべきである。
VLOOKUPで右から返ってきたものは、元のセルに入っているデータ型を引き継ぐ。
だから、
- 元の時給欄が数値なら → 値
- 元の時給欄が文字として入っているなら → 文字列
になる。
例
社員マスタがこうだとする。
| 社員番号 | 時給 |
|---|---|
| 1001 | 1200 |
| 1002 | 1350 |
このとき、
=VLOOKUP(A2, D:E, 2, FALSE)
で返ってくる時給は、ふつうは 数値 である。
なぜなら、時給は通常、計算対象だからである。
たとえば返ってきたあとに、
- 残業時間と掛け算する
- 月額を集計する
- 平均時給を出す
といったことができるなら、それは値である可能性が高い。
ただし例外がある
見た目が 1200 でも、元データが
'12001,200円を文字として入力- 空白つきの
"1200 "
のようになっていれば、VLOOKUPで返るのも文字列寄りになることがある。
つまり、「時給だから必ず値」ではなく、普通は値として管理すべきもの」という理解がよい。
実務上の答え
- 社員番号 → 文字列で管理しやすい
- 時給 → 値で管理すべき
この組み合わせが自然である。
見分け方
返ってきた時給が値かどうかは、たとえば次で確認しやすい。
=B2*2
これで普通に計算できれば、値である可能性が高い。
逆にうまく計算できなかったり、関数で不自然な挙動をするなら文字列の可能性がある。
GoogleスプレッドシートやExcelなら、ISNUMBER でも確認できる。
=ISNUMBER(B2)
TRUE→ 値FALSE→ 数値ではない
ひとことで言うと
VLOOKUPが時給を返したから値になるのではなく、元の時給データが数値なら値として返る。
そして、実務では時給は基本的に値として扱う。