
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で質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- Excel(エクセル) VBA 文字列変換と指定した列にある日時データから時間を削除する方法について 2 2022/04/14 15:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータを「間引き」す...
-
Wordで、ヘッダーに印刷日付を...
-
Accessでの支払日の計算方法
-
挿入した日付の自動更新を中止...
-
Wordの日付変換ってできますか?
-
重複を除外したカウント方法を...
-
Word2010 フィールド内での和...
-
A1に身長を入れます
-
日付を昇順で並び替えし、空白...
-
Accessインポートエラー
-
FileMaker Pro 10 で令和を表示
-
【再投稿】メモ帳からアクセス...
-
日付を差し込み印刷で表示した...
-
VBAでエクセルシートを更新...
-
差し込み印刷に当日の日付が入...
-
エクセルのチェックボックスを...
-
「24日の0時」って・・・
-
Excel関数 「日付を入力...
-
回覧板の日付について質問です...
-
マクロボタンを押すと、ファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差し込み印刷で日付の曜日を表...
-
日付を差し込み印刷で表示した...
-
日付を昇順で並び替えし、空白...
-
Wordの日付変換ってできますか?
-
クエリで日付型のIIF関数の使用
-
【Word】 今日の「年」「月」...
-
日付型のテキストボックスに数...
-
Wordで、ヘッダーに印刷日付を...
-
日付がインポートされない
-
アクセス:エクセルからのイン...
-
重複を除外したカウント方法を...
-
【Tableau Desktop】文字列から...
-
ファイルメーカーで日付けを変...
-
Word2010 フィールド内での和...
-
ファイルメーカーの自動計算に...
-
accessで残業時間計算
-
Accessで秒を時間で表示させる...
-
ACCESSの自動連番について
-
ファイルメーカーの日付の検索
-
ファイルメーカー 実在の日付...
おすすめ情報
ご回答ありがとうございます。
ISNULLを使用した場合も変換エラーは起きてしまいます。
例として「20210031」の場合はNULL判定ではないので、変換が行われ結果としてエラーが返ってしまいます。このような値を判定して除外したいのですが難しいですね、、、
ご丁寧なご説明ありがとうございます。