本記事で分かること
- さまざまな形式で書かれた日付を、特定の形式に統一したい
よくあるケース
例1)「2021-7-20」や「2023年12月13日」の形式を「yyyy/MM/dd」に統一したい
例2)「yyyy-mm-dd」だけを「yyyy/mm/dd」に変換したい
例3)「yyyy年mm月dd日」だけを「yyyy/mm/dd」に変換したい
例4)「R6.7.5」を「yyyy/MM/dd」に変換したい
例5)別々に読み取った「令」「3年7月20日」を「2021/7/20」にしたい
例6)別々に読み取った「令」「3」「7」「20」を「2021/7/20」にしたい
例7)西暦が無い表示に西暦を記載したい(「7月18日」→「2024年7月18日」)
例8)「2024/14/35」を読み取ったら「存在しない日付」と出力したい
例9)日付の記載が1つもない帳票に「2024年10月23日」と出力する
例10)帳票に「10月23日」と表記がある場合に「2024年10月23日」と出力する
設定方法
以下のように、データ加工「日付フォーマット」の「出力フォーマット」を指定することで、読み取った日付を様々な形式に変換することができます。
なお、特定の形式で書かれた日付だけを変換対象としたい場合は、「文字列変換(部分一致)」を使います。
例1)「2021-7-20」や「2023年12月13日」の形式を「yyyy/MM/dd」に統一したい
A列で読み取った日付を「yyyy/MM/dd」に統一する方法を解説します。
日付フォーマットを使って以下を設定します。
- 入力列
- A列
- 出力列
- A列
- 入力フォーマット
- 規定のフォーマット
- 出力フォーマット
- yyyy/MM/dd
例2)「yyyy-mm-dd」だけを「yyyy/mm/dd」に変換したい
本例では「yyyy-mm-dd」形式だけを変換したいため、日付フォーマットではなく「文字列変換(部分一致)」を使って設定します。
- 入力列
- A列
- 出力列
- A列
- 変換対象文字列
- -
- 変換後文字列
- /
→A列の「-」を「/」に変換することで「yyyy/MM/dd」を出力します
例3)「yyyy年mm月dd日」だけを「yyyy/mm/dd」に変換したい
本例では「yyyy年mm月dd日」形式だけを変換したいため、日付フォーマットではなく「文字列変換(部分一致)」を使って、以下3つの変換設定を行います。
文字列変換設定1
- 入力列
- A列
- 出力列
- A列
- 変換対象文字列
- 年
- 変換後文字列
- /
文字列変換設定2
- 入力列
- A列
- 出力列
- A列
- 変換対象文字列
- 月
- 変換後文字列
- /
文字列変換設定3
- 入力列
- A列
- 出力列
- A列
- 変換対象文字列
- 日
- 変換後文字列
- 空欄
→「年」を「/」に、「月」を「/」に、「日」を空欄にすることで、「yyyy年MM月dd日」形式を「yyyy/MM/dd」に変換します
例4)「R6.7.5」を「yyyy/MM/dd」に変換したい
日付フォーマットを使って以下を設定します。
- 入力列
- A列
- 出力列
- A列
- 入力フォーマット
- GGGy.M.d (半角で直接入力してください)
- 出力フォーマット
- yyyy/MM/dd
例5)別々に読み取った「令」「3年7月20日」を「2021/7/20」にしたい
B列で「令」、C列で「3年7月20日」と読み取った際に、A列に「2021/7/20」を出力する方法を解説します。
以下手順で変換をします。
1.「令」を「令和」に変換する
2.「令和」と「年月日」を結合する(令和3年7月20日)
3.「yyyy/mm/dd」の形式に変換する(2021/7/20)
<詳細な設定>
1.「文字列変換(部分一致)」を使い「令」を「令和」に変換する
入力列
- B列
出力列
- B列
変換対象文字列
- 令
変換後文字列
- 令和
→B列に「令和」が出力されます
2.「文字列フォーマット」を使い「令和」と「年月日」を結合する
入力列
- B列
- C列
出力列
- A列
フォーマット
- {1}{2}
→A列に「令和3年7月20日」が出力されます
3.「日付フォーマット」で「yyyy/mm/dd」の形式に変換する
入力列
- A列
出力列
- A列
入力フォーマット
- 「直接入力」を選び、Gyy年MM月dd日 と入力(英字は半角で入力してください)
出力フォーマット
- yyyy/mm/dd
→A列に「2021/7/20」が出力されます
例6)別々に読み取った「令」「3」「7」「20」を「2021/7/20」にしたい
B列で「令」、C列で「3」、D列で「7」、E列で「20」と読み取った際に、A列に「2021/7/20」を出力する方法を解説します。
以下手順で変換をします。
1.「令」を「令和」に変換する
2.「令和」と「年月日」を結合する(令和3年7月20日)
3.「yyyy/mm/dd」の形式に変換する(2021/7/20)
<詳細な設定>
1.「文字列変換(部分一致)」を使い「令」を「令和」に変換する
入力列
- B列
出力列
- B列
変換対象文字列
- 令
変換後文字列
- 令和
→B列に「令和」が出力されます
2.「文字列フォーマット」を使い「令和」と「年月日」を結合する
入力列
- B列
- C列
- D列
- E列
出力列
- A列
フォーマット
- {1}{2}年{3}月{4}日
→A列に「令和3年7月20日」が出力されます
3.「日付フォーマット」で「yyyy/mm/dd」の形式に変換する
入力列
- A列
出力列
- A列
入力フォーマット
- 「直接入力」を選び、Gyy年MM月dd日 と入力(英字は半角で入力してください)
出力フォーマット
- yyyy/mm/dd
→A列に「2021/7/20」が出力されます
例7)西暦が無い表示に西暦を記載したい(「7月18日」→「2024年7月18日」)
西暦が無い日付を読み取った際に、西暦を追加(統一)して出力する方法を解説します。
1.列データへ変換で、読み取った日付を縦に出力する
入力列
- A列
出力列
- A列
2.条件付き加工を使って「2024年」を追加する
<条件1>
入力列
- A列
ルール指定
- 指定文字で始まらない
指定文字
- 2024
→A列のうち「2024」で始まらない日付を絞ります
<実行する加工設定1>
入力列
- A列
出力列
- A列
フォーマット
- 2024年{1}
→A列に「2024年7月18日」が出力されます
例8)「2024/14/35」を読み取ったら「存在しない日付」と出力したい
日付フォーマットを使い、A列の日付が存在しない日付だった場合、「存在しない日付」等とエラーメッセージを表示することが可能です。
入力列
- A例
出力列
- A列
「日付解析を厳密にチェック」にチェックを入れる
エラーメッセージ:「存在しない日付」と入力
※「2024/100/100」など、規定のフォーマットに当てはまらない桁数や形式の文字を読み取った場合は、日付として認識できず、エラーメッセージは表示しません。
例9)日付の記載が1つもない帳票に「2024年10月23日」と出力する
データ加工「日時挿入」を利用することで、ユニット作成の日時をCSVに挿入できます。
挿入された日付は「yyyyMMddHHmmss」形式で出力されるため、「日付フォーマット」と組み合わせることで「yyyy年MM月dd日」形式で出力することができます。
出力列
- A列
1.A列に対して「日時挿入」を設定する
→A列に、ユニット作成時の時刻が「yyyyMMddHHmmss」形式で挿入されます。
2.日時が出力されたA列に対して「日付フォーマット」を設定する
・入力フォーマットは「既定のフォーマット」を選択
・出力フォーマットは「任意のフォーマット」を指定し、本例では「yyyy年MM月dd日」を選択します。
→A列に「yyyy年MM月dd日」形式の日付(例:2024年10月23日)を出力できます。
例10)帳票に「10月23日」と表記がある場合に「2024年10月23日」と出力する
データ加工「日時挿入」を利用することで、年の記載がない日付を読み取った時に、当年の日付として出力することが可能です。
「日時挿入」にて「yyyyMMddHHmmss」形式で出力された日時を、「日付フォーマット」で年のみの表記に加工し、最後に「マージ」にて「年」と「帳票上の日付」を結合することで、「yyyy年MM月dd日」形式で出力することができます。
<帳票イメージ>
1. 赤枠部分の「10月23日」をA列で読み取る
2. データ加工設定画面にて「列を追加」し、追加した列に対して「日時挿入」を設定する
(本例ではB列に出力します)
→B列に、ユニット作成時の時刻が「yyyyMMddHHmmss」形式で挿入されます。
3. B列に対して「日付フォーマット」を追加し、年の部分だけ取得する
出力フォーマットを「直接入力」にし、「yyyy年」と入力することで年の部分だけ取得できます。
→B列に「2024年」と出力されます。
4.データ加工「マージ」にて年部分(前項3で設定したB列)と、読み取った日付(A列)を結合する
→読み取った日付に年を加えた「2024年10月23日」がA列に出力されます。
参考リンク
ユーザコミュニティ「AI inside Academy 」にて、日付フォーマットの使い方を動画で解説していますのでご参照ください。
※AI inside Academy のご利用には会員登録が必要です。
※with DX Suite/with AI inside 製品をご契約の場合は、AI inside Academy はご利用いただけません。