2016-11-23 20 views
0

私は式(文字Mに続いて二つの数字の文字列を抽出)

「LIKE」タイプのロジック

で探すために式を記述しようとしています優れています。

たとえば、この文字列「MOBILE RPL 24M $ 0-39 P」では、数字「24」を抽出したいと思います。この番号は、常に文字「M」と続いているが、以下に示す文字列の複数のバリエーションを扱うことができるようになります。

  1. 「モバイルRPL 24M $ 0-39 P」
  2. 「モバイルのRPL 24 M $ 0-39 P "
  3. "モバイルRPL 24MO $ 0-39 P"
  4. "モバイルのRPL 24 MO $ 0-39 P"
  5. "モバイルRPL 24MON $ 0-39 P"
  6. " モバイルのRPL 24 MO $ 0-39 P "
  7. " TV 52 RPL 24 MO $ 10 00から4999 P "
  8. "TV 52 RPL 24MO $ 1000から4999 P"
  9. "TV 52 RPLの24M $ 1000から4999 P"
  10. "TV 52 RPL 24 M $ 1000から4999 P"
  11. " TV 52 RPL 24MON $ 1000から4999 P」
  12. "TV 52 RPL 24月​​$ 1000から4999 P"
+0

"私は式を記述しようとしています..."あなたの試みは何ですか? –

+0

これは完全な証明ではありません...文字列内の数字を検索し、12で割り切れるかどうかをチェックするロジックを使用します... 52の文字列が失敗します。また時には私は他の文字列にも13Mが表示されることがあります。 – HDB

+0

スプレッドシートの式は間違いありませんが、VBAではより簡単に実行できます。数式やVBA関数を試していますか? –

答えて

0

これは、すべてのテストケースで動作します:

=TRIM(MID(A1,(SEARCH("RPL",A1)+LEN("RPL")),SEARCH("M",A1,(SEARCH("RPL",A1)+LEN("RPL")))-(SEARCH("RPL",A1)+LEN("RPL")))) 

これは基本的には次のとおりです。

Xは開始位置である
=TRIM(MID(A1,X,SEARCH("M",A1,X)-Y)) 

=SEARCH("RPL",A1)+LEN("RPL") 

そしてYは終了位置です:

=SEARCH("M",A1,X) 
関連する問題