2016-04-07 9 views
1

セルに入力された時間を検証する必要があります。しかし、セルは、後で時間と分を抽出するために必要となるため、日付形式である必要があります。時間形式のセルでRegExを使用したデータ検証

セル形式がプレーンテキストかどうかはRegExで完全にチェックされますが、「時間」または「日付」または「hh:MM」に設定すると、スプレッドシートにエラーが表示されます。 0.52154は数値型であり、テキスト型に強制することはできません "(フランス語からの近似翻訳、申し訳ありません)。

マイ式:

=REGEXMATCH(F5,"([0-1][0-9]:[0-5][0-9]:[0-5][0-9])?([0-9]:[0-5][0-9]:[0-5][0-9])?([0-1][0-9]:[0-5][0-9])?([0-9]:[0-5][0-9])?")

は、回避策はありますか?

答えて

0

値を読み取ります:

機能1は、テキスト値を期待しREGEXMATCHパラメータ。しかし、 '123'は数字であり、テキストに強制することはできません。

正規表現をテキスト以外の値に適用できないため、エラーが発生します。テキストと使用する値をキャストREGEXMATCH:あなたは式をテキストに番号を変換することができ

=REGEXMATCH(TEXT(F5,""),"([0-1][0-9]:[0-5][0-9]:[0-5][0-9])?([0-9]:[0-5][0-9]:[0-5][0-9])?([0-1][0-9]:[0-5][0-9])?([0-9]:[0-5][0-9])?") 
      ^^^^^^^^^^^ 
+0

あなたの答えをありがとう。働いていない。このスプレッドシートを作成してテストしました:https://docs.google.com/spreadsheets/d/1c5LYmYLQJHObnu3dDufZNetltDAPpDkbYQf19zVsP5U/edit?usp=sharingいくつかのテストがあり、いずれも動作しません。正規表現の問題ではありませんが、私はそれを置き換えることをためらっていますか? |と書かれていますが、私はそれを確認します。正規表現へのかなりの初心者... @maxmakhrov:同じコメント、ありがとう。 –

1

=REGEXMATCH(TEXT(F5,"hh:mm:ss"),regex) 

hh:mm:ssは、適切な刺さ模倣時間形式に番号を変換します。時間を入力し

ことを確認するためには、多数のフォーマットである、あなたはまた、ISNUMBER関数を使用する必要があります。テキストが入力された場合

=and(ISNUMBER(F5),REGEXMATCH(TEXT(F5,"hh:mm:ss"),regex) 

falseを返します。

0

検索と再び、私は= TEXT(A1、 "パターン")の変化に出くわし式テスト:私は少し掘る必要があります =REGEXMATCH(TO_TEXT(E20);"([0-1][0-9]:[0-5][0-9]:[0-5][0-9])|([0-9]:[0-5][0-9]:[0-5][0-9])|([0-1][0-9]:[0-5][0-9])|([0-9]:[0-5][0-9])")

:私の最後の式= TO_TEXT()

をTOYTEXT()とTEXT()の違いを理解するには...

この問題は、関数のパターンのパラメータをフォーマットする必要がありました。 12h45のようなものが入力された場合、= TEXT(E20; "hh:mm:ss")パターンは00:00:00を返し、正規表現はTRUEと評価されます。

関連する問題