- ベストアンサー
ワークシート関数を使って時間部分を括弧で囲む方法
- 質問文章に記載されている時間相当の数値を括弧で囲むワークシート関数を教えてください。
- 質問文章の文字列内には、半角または全角の時間区切り文字(:または:)があり、スペースも半角または全角で表記されることがあります。
- ワークシート関数を使用して、時間のみを括弧で囲む方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Green ROMのように文字列中のスペースが1個限定(文字列と時間の間は限定なしで)ですが =LEFT(A2,FIND(" ", ASC(A2), FIND(" ", ASC(A2))+1)-1)&" (" & RIGHT(A2,LEN(A2)-FIND("●", SUBSTITUTE(ASC(A2), " ", "●", LEN(A2) - LEN(SUBSTITUTE(ASC(A2), " ", ""))))) & ")" で試してみてください。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
こういう課題は、エクセル関数向けでない。 VBAでも使い、「正規表現」という仕組みを使い、 文章中から、時間にふさわしい表記の部分を発見し(=検索) (+検索文字列+)に、置換することをやると思うが、「パターン」という文字列」を、本件に適したものを作るのが、相当勉強と経験がいる。 ーー 人間が、目視で、どこにあるか見つけて、記号などで印をつける。 その記号を探し、置換する、程度にしておいたらどうか。 多列のデータだと結果セルを作る列の確保も大変だが。 == http://site.m-bsys.com/code/regexp-sample 対象 時刻の部分 正規表現:\d\d:\d\d 他の4つに比べて、一番理解しやすい書き方だが。 ーー 限定されること。 (1)人間のやる表記の多様性のため、指摘しすぎたり、漏らしたりは、例を挙げるのはたやすい。完全とは 言えないということ。 (2)VBAのVbscriptのRegExpという機能を使う必要がある。 RegExpを使う前後に、通常のVBAコードを使う必要がある。(その知識も必要。簡単だが、たとえば指定全セルを、検索繰り返し、など)。
お礼
kkkkkmさん、 今回も含めて何度も回答をいただき感謝します。 imogashiさん、 解説ありがとうございます。 エキセル関数では出来ないのですね。 VBAでも難しいそうなので 文字部と時間部を分けてそれぞれセルに取り出して 時間部に括弧で囲んで最後に両者を結合させて処理することにしました。 賢者さんならスマートな方法を教えてもらえるかもと思った素人の浅知恵でした。
お礼
kkkkkmさん、 今回も含めて何度も回答をいただき感謝します。 imogashiさん、 解説ありがとうございます。 エキセル関数では出来ないのですね。 VBAでも難しいそうなので 文字部と時間部を分けてそれぞれセルに取り出して 時間部に括弧で囲んで最後に両者を結合させて処理することにしました。 賢者さんならスマートな方法を教えてもらえるかもと思った素人の浅知恵でした。