社内システムの自作なら、すず工房へ!!
エクセル仕事術などでIT経営を支援します
  • Home
  • エクセル仕事術
  • クラウド生産管理
  • サービス案内
  • つぶやきました
  • お問合せ
  • すず工房
  • 名刺

2 つの指定した日付の時間間隔と満年齢

2011年8月18日

名簿などで、氏名のよみがなや入社年月日から勤続年数を、大量に入力しなければならない時、どうしてますか?

計算式やExcelの関数を使えばこれらは簡単にできます。しかし、計算式はそのつど計算結果が更新されます。たとえば日付がかわれば年齢は更新されます。

日付に限らず、計算結果を更新したくないとき、つまり、計算式を入力した時の結果だけがほしいときはどうしますか?

答えは簡単、計算式を入力し、その結果をコピーして、値を貼り付けすればいいのです。  

そて、ここからが本題です。

シート上では、2 つの指定した日付の時間間隔を計算するために[datedif関数]を使用しています。この関数がいわゆる[満年齢]を計算していることがお分かりいただけると思います。

VBAでも同様の関数に[datediff関数](こちらはfがふたつ)があります。似たような名前なので似たような機能だと考えて(期待して)しまいますが、文字通り[似たような機能]なんです。[同じではありません]。

daqtediff関数を使用して、同様に計算してみると、右図のようになります。

ログラムはこちら。

Public Function myDatedif(fromDate As Variant, toDate As Variant)

    myDatedif = DateDiff("yyyy", fromDate, toDate)

End Function

引数の並び順、時間間隔の指定もシート関数とは異なります。

Public Sub setMyDatedif()

    Dim idx As Long

    With ActiveSheet

        For idx = 10 To 13

            .Cells(idx, 6).Value = myDatedif(.Cells(idx, 4).Value, .Cells(8, 2).Value)

        Next idx

    End With

End Sub

 

この計算結果からわかるように、VBAのDatediff関数では、"yyyy"(年)を指定すると[年差]が計算されます。月/日は関係ありません。したがって、たとえば年齢でいえば[満年齢]は計算してくれません。

そこで、満年齢を計算するようにしたのが次のプログラムです。

Public Function myDatedif2(fromDate As Variant, toDate As Variant)

    myDatedif2 = DateDiff("yyyy", fromDate, toDate)

    If Format(Month(fromDate) & "/" & Day(fromDate), "mm/dd") _

    <= Format(Month(toDate) & "/" & Day(toDate), "mm/dd") Then

 'そのまま

    Else

        '月/日 を超えていないので-1する

        myDatedif2 = myDatedif2 - 1

    End If

End Function

このプログラムで計算すると、次の通り、きちんと[満年齢]を表示しています。

  • 仕事に生かすExcel
  • マクロ・VBA
    • Excel2013のSDIへの対応
    • WEBからデータをVBAで取込む
    • 選択したセル範囲を取出すには
    • 消費税率を読込むDLL
    • インターネット上のサイトのデータを読み込む
    • 右ボタンでのMouseDownイベントには要注意
    • CSVファイルを読みこむ(Excel)
    • テキストファイル読込速度比較
    • 進行表示の3つの方法
    • IsDate関数はおかしい‥
    • 別のワークブックのデータを読み込む
    • 2 つの指定した日付の時間間隔と満年齢
    • ワークシートのセルに特定のデータを入力する
    • CSVファイルからデータを取り出す
    • ワークシートからデータを取得する
    • ワークシートにデータをセットする
    • 特定のセル範囲からデータを探す方法を比較する
  • Excelの操作

コンタクト

メール
メール
FaceBook
FaceBook

つぶやきました

見える生産管理2022

2022年 10月 31日 月

久しぶりの投稿になってしまいましたが、「見える生産管理2022」を試用できるようになりました。「クラウド生産管理」メニュからご覧ください。

0 コメント

Webデータベース利用の生産管理

2019年 7月 22日 月

いままでExcel(R)を活用した生産管理システムを構築したり構築支援したりしてきましたが、もっと簡単に生産管理を開始できないかと考え、Webに登場してきたデータベースを利用して生産管理できるシステムを考えました。

 

続きを読む 0 コメント

iPadのSIM

2018年 11月 16日 金

iPad Pro 12.9を外出時の仕事用に使っていたが、自宅のMACにリモートアクセスするのがベストに近いかもと気づき、4G回線経由だがやってみた。

しかしこれがかなり遅い。SIMは前の機種で使ってたイオンモバイルのやつ。これが原因かもと思い、一番早いと噂のUQ  Mobileに変えてみた。体感的にはちょっと早いかなという感じ。これからじっくり検証していこうと思う。

 

インターネット接続の設定でつまづいたので以下に備忘録として残しておく。

 

 

続きを読む
プライバシーポリシー | サイトマップ
Copyright © 2002- すず工房. All Rights Reserved.
ログアウト | 編集
  • Home
  • エクセル仕事術
    • 仕事に生かすExcel
      • Excelでできること
      • ExcelからSQLiteを使う理由
    • マクロ・VBA
      • Excel2013のSDIへの対応
      • WEBからデータをVBAで取込む
      • 選択したセル範囲を取出すには
      • 消費税率を読込むDLL
      • インターネット上のサイトのデータを読み込む
      • 右ボタンでのMouseDownイベントには要注意
      • CSVファイルを読みこむ(Excel)
      • テキストファイル読込速度比較
      • 進行表示の3つの方法
      • IsDate関数はおかしい‥
      • 別のワークブックのデータを読み込む
      • 2 つの指定した日付の時間間隔と満年齢
      • ワークシートのセルに特定のデータを入力する
      • CSVファイルからデータを取り出す
      • ワークシートからデータを取得する
      • ワークシートにデータをセットする
      • 特定のセル範囲からデータを探す方法を比較する
    • Excelの操作
      • ふりがなをつける
      • 行・列を固定してスクロール
      • 他のシートのデータを表示する-カメラ機能
      • 文章を指定範囲に収まるように整形する
  • クラウド生産管理
    • 見える生産管理2022
    • 見える生産管理K(簡易版)
    • 試用申込み
  • サービス案内
    • IT経営
  • つぶやきました
    • MAC
    • IT
    • その他
    • 年月別
      • 2022/10
      • 2019/07
      • 2016/07
      • 2016/04
      • 2015/11
      • 2015/10
      • 2015/08
      • 2015/07
      • 2015/06
      • 2015/03
      • 2015/02
      • 2014/12
      • 2014/03
      • 2013/09
      • 2012/11
      • 2012/09
      • 2010/09
      • 2010/08
      • 2010/07
      • 2010/06
      • 2010/03
      • 2010/02
      • 2009/05
      • 2009/04
  • お問合せ
  • すず工房
    • 企業理念
    • 主な資格
    • 実績
  • 名刺
  • トップへ戻る