下図のように、=TODAY() の「正しい」情報を別の列に渡すことができません。実際にこれを機能させる方法があることを心から願っています。
私は Excel を使い始めたばかりなので、=column&column&column
などを使用しています。
DDMMYYYY データを列「B」に正しく入力しようとしています。現在は、"=F11&C11&G11&D11&H11&E11&I11&O11&P11&J11&K11&E11&L11&D11&Q11&E11&R11&M11&N11&E11&S11&B1"
DDMMYYYY がある場所が O11 である基本的な数式を使用しています。
答え1
背景
Excel は日付と時刻を日単位で保存します。日付は 1900 年 1 月 0 日からの日数 (整数) として保存されます。昨年 9 月には 43,000 日目に達しました。時刻は 1 日の小数として日付に追加されます (正午は 0.5 日)。
日付 (および時刻) 情報は、書式設定によって読み取り可能な形式で表示されます。日付と時刻情報をよく使用される形式で表示するための組み込み形式のコレクションがあります。Excel には、一般的な日付と時刻のコンポーネントを抽出して使用できる関数のコレクションも含まれています。
セル内の日付または時刻の値を単に参照する場合は、表示される書式設定されたバージョンではなく、生の内部表現で作業することになります。そのため、TODAY() 値は DDMMYYYY (15042018) として書式設定されて表示されますが、そのセルを参照すると 43205 という値が生成されます。文字列でセル値の DDMMYYYY 変換を使用する場合は、生のセル値をその形式に変換する必要があります。
解決
最も簡単な解決策は、TEXT 関数を使用して書式指定を含めることです。TEXT 関数は、数値を書式設定された値に変換します。Excel の日付/時刻値を読み取り可能な形式に変換したり、他の種類の数値を書式設定したりできます。TEXT 関数の便利なガイド:https://support.office.com/en-us/article/text-function-20d5ac4d-7b94-49fd-bb38-93d29371225c
ワークシートのセルO11はTODAY()関数を持つセルです。生のセル参照(...&O11&...
)を連結する代わりに、セル参照を次のように置き換えます。
TEXT(O11,"ddmmyyyy")
のように...&TEXT(O11,"ddmmyyyy")&...
これにより、文字列内の TODAY() の値が DDMMYYYY 形式にフォーマットされます。
バージョンの問題
コメントで説明されている問題は、ファイルに古い Excel 形式を選択したために発生していることに注意してください。Excel V2016 を使用していますが、V97-2003 に限定されたファイル形式を選択しました。この形式では、2003 バージョンより新しい機能は使用できません。TEXT 関数は V2007 にまで遡りますが、サポートされていない他の機能に遭遇していないのは驚きです。
ファイルを「Excel マクロ有効ブック」として保存し、閉じて、保存したバージョンを開き、TEXT 関数を入力します。