小さい会社の1人SEの開発記というか奮戦記

  1. Excel
  2. 4130 view

日付型データの時分秒を削除する【Excel】

エクセルで日付型データをVlookupしたところ、#N/A表示、そんなはずは無いと繰り返すも無限ループへ、日付型データは表示されないだけで後ろに時分秒がしっかり存在しているのを忘れてはまったので対策を備忘録としてまとめます。

はまった処理のあらまし

稼働日カレンダとして日付と一緒に稼働日=1、休暇日=0の稼働サインが並んでいる表があります。

生産の実績日付から稼働日カレンダをVlookupして稼働サインを検索したところ #N/A の表示

計算式は間違えるはずのないシンプルなものなのでかなりはまってしまいました。

日付型データには時分秒が含まれる

生産の実績日付はNow()を使って登録するので年月日時分秒のデータとなっています。
よって年月日のデータと突き合わせてもイコールが成り立たないのが原因でした。

違うものをイコールで評価するので False になるのは当然ですね・・・。
表示形式で yyyy/mm/dd の表示にしていたのでまったく気が付きませんでした。

日付型データにTrunc()で時分秒を削除する

エクセルで1を日付型表示にすると1900/1/1となります。日付型データは整数部で日付を小数点以下で時分秒を表しています。よって小数点以下を切り捨てれば日付だけのデータになります。
日付型データがセルB2にあるとすると =Trunc(B2) で日付だけのデータを計算します。

カレンダーのデータに”カレンダ”と名前を付け、2列目の稼働サインをセルB2の値で検索すると
=Vlookup(Trunc(B2),カレンダ,2,false)
でしっかり検索してくれました。

日付が1900/1/1以降であれば、Int() や Rounddown()でも同じ結果になります。

Excelの最近記事

  1. 日本語をエンコードする【Excel VBA】

  2. 商品コードなど長い数値だけの文字列を指数表示させない【Excel VBA】

  3. VBAで改行を指定する【Excel】

  4. 入力規則のプルダウン連携【Excel】

  5. 最短手順で計算式を保護する【Excel】

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する