
Tableau Desktopの計算フィールドでタイトルに記載した日付取得を行いたいです。
例)初期値:教えて!goo20230731
最終値:2023-07-31
以下はイメージです。
1.8桁の数字を文字列として取得(Aとする)
REGEXP_EXTRACT([文字フィールド],'\d{8}')
2.取得した文字列を日付型に変換可能なら日付型にし、それ以外は'NULL'とする
IF ISNULL(ISDATE([A])) THEN 'NULL'
ELSE
DATEPARSE('yyyyDDmm',[A])
END
ISDATEが非集計では使用できませんとエラーが出てしまい困っています。
8桁の数字が20230031のような場合、0月という日付がないため変換エラーになるので日付変換可能か判定するロジックが必要になります。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Tableau Desktopで、ISDATE関数を非集計フィールドで使用することはできませんが、代わりにDATEPARSE関数のエラーハンドリングを使用して、日付変換可能かどうかを判定することができます。
具体的な手順は以下の通りです。8桁の数字を文字列として取得 (Aとする)
scss
REGEXP_EXTRACT([文字フィールド], '\d{8}')
取得した文字列を日付型に変換可能かどうかを判定
java
IF ISNULL(DATEPARSE('yyyyMMdd', [A])) THEN 'NULL'
ELSE DATEPARSE('yyyyMMdd', [A])
END
上記の式では、DATEPARSE関数を使用して取得した文字列を日付型に変換しようとします。もし変換が成功した場合はその日付を返し、変換ができなかった場合は'NULL'を返します。
このように、ISDATE関数を使用せずにDATEPARSE関数のエラーハンドリングを活用することで、日付変換可能かどうかを判定することができます。なお、DATEPARSE関数では変換エラーが発生した場合にNULLが返るため、'NULL'を返す部分は不要です。ただし、上記の式で使用する日付のフォーマットは注意してください。例えば、'yyyyMMdd'のように、正確なフォーマットを指定する必要があります。ご希望に添えるか分かりませんがよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
差し込み印刷で日付の曜日を表...
-
日付を差し込み印刷で表示した...
-
Accessで秒を時間で表示させる...
-
Word2010 フィールド内での和...
-
accessで残業時間計算
-
「24日の0時」って・・・
-
日付の大小の表現
-
VBAでエクセルシートを更新...
-
差し込み印刷に当日の日付が入...
-
エクセルで最高値、最低値の日...
-
excelで、セル内に文字が入力さ...
-
宀や广など、部首だけを入力す...
-
エクセルのチェックボックスを...
-
「時間」、「期日」、「日付」...
-
エクセルで数字から名前に変...
-
メールの最後に日付をいれますか?
-
Excel:セルに入力されている日...
-
Excel 隣のセルが空白以外の場...
-
ACCESSでの時間外計算方法
-
[SQLSERVER2005]OSの日付を変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差し込み印刷で日付の曜日を表...
-
日付を差し込み印刷で表示した...
-
日付を昇順で並び替えし、空白...
-
日付がインポートされない
-
クエリで日付型のIIF関数の使用
-
Wordの日付変換ってできますか?
-
Wordで、ヘッダーに印刷日付を...
-
重複を除外したカウント方法を...
-
【Word】 今日の「年」「月」...
-
Word2010 フィールド内での和...
-
word2007で日付挿入したら翌日...
-
【Tableau Desktop】文字列から...
-
日付型のテキストボックスに数...
-
日付のデータ型について
-
Accessで秒を時間で表示させる...
-
ウィンドウィズ メモ帳で日付だ...
-
FileMaker Pro 10 で令和を表示
-
ファイルメーカーPro7でカレン...
-
ファイルメーカーで検索結果を...
-
エクセルデータをファイルメー...
おすすめ情報
ご回答ありがとうございます。
ISNULLを使用した場合も変換エラーは起きてしまいます。
例として「20210031」の場合はNULL判定ではないので、変換が行われ結果としてエラーが返ってしまいます。このような値を判定して除外したいのですが難しいですね、、、
ご丁寧なご説明ありがとうございます。