次の方法で共有

Excel 2013、2016 利用により、Datevalue関数結果が更新される

Anonymous
2017-06-01T09:32:25+00:00

共有ファルダに保存した、Excelシートを利用してます。

パソコン6台の環境で、導入タイミングが事ンなる為、Excel 2013、2016 のバージョンが

混在してます。

今回気づいた点で困っているのは、

文字列で入力された、月日よりDatevalue関数を使用してシリアル値を求めて

Year、Month、Day関数を使用して年月日にしてます。

Excelの同バージョンで開く分には問題無いのですが、異なるバージョンで開くと

年が全て現在の年に更新されてしまい、過去7年間のデータが全て変わってしまいます。

Excelシートの関数はそのままで、オプション設定の変更により対象する方法は無いでしょうか。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

3 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-06-14T05:31:12+00:00

    ​comek さん、こんにちは。

    返信ありがとうございます。

    記載いただいた内容を元に、手元の Excel 2016 で試してみると「'6/1」は Datevalue 関数で 42887 →  2017/6/1 になりました。

    もしかすると、A1 の入力値「'6/1」は文字列扱いで、年に相当する部分がないので Datevalue 関数に入れると今年の 6/1 になってしまうのかもしれません。

    自動再計算が有効になっていると今年の日付になってしまうのかもしれませんが、バージョンの異なる環境で開くと異なる結果になるのかまでははっきりとした原因がわかりませんでした。。

    計算方法の設定が環境によって異なっているかもなので、 [ファイル] > [オプション] > [数式] で、「ブックの計算」を「手動」にし、「ブックの保存前に再計算を行う」のチェックを外して動作を確認してみてはいかがでしょうか。

    (ただこれで回避できたとしても、同じブック内に更新したい数式がある場合その数式を編集状態にして Enter を押すというような作業が必要になるので、なかなか難しいところです。。)

    他にも何かアドバイスがある方がいらっしゃれば、ぜひコメントお待ちしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2017-06-08T04:17:56+00:00

    ご教授有難うございます。

    '6/1 と文字入力されたセルに対して、=DATEVALUE(セル位置)を使用、シリアル値にたいしてYear、Month、Day関数を使用して年月日にしてます。

    例)2016/6/1に作成

           A1   B1          C1       D1         E1

    入力    '6/1  =Datevalue(A1)  =YEAR(B1)  =MONTH(B1)  =DAY(B1)

    結果    6/1   42522        2016      6          1

     2017年に異なるバージョンのEXCELで開くと下記の結果に変わってしまいます。

    結果    6/1   42887        2017      6          1

     同バージョンのEXCELであれば結果は変わりません。

    宜しくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2017-06-02T06:19:33+00:00

    ​comek さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    異なる Excel のバージョンでファイルを開くと DATEVALUE 関数の結果が変わってしまうのですね。

    下記のページを見ると Excel 2016、 Excel 2013 どちらのバージョンでも同じように利用できる関数なので、どこに要因があるかすぐに判断は難しい状況ですね。

    DATEVALUE 関数

    上記ページの説明のように、=DATEVALUE("1/1/2008") といったように、式の中に文字列で年月日を入れているのであれば意図せず更新されないと思うのですが、式の中で「年」をどのように指定しているのかなど、式の内容も書いてみるとアドバイスが寄せられやすくなると思います。

    よければ返信してみてくださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません