[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『難しい抽出…』(ひろ)
A1セルに
サラ系2歳未勝利 2015年8月30日(日) 9:50 2回小倉10日 1R 芝・右 1200m 曇 稍重 サラ系2歳 未勝利 牝 [指定] 馬齢
A2セルに
第25回チューリップ賞(GII) 2018年3月3日(土) 15:35 1回阪神3日 11R 芝・右・外 1600m サラ系3歳 オープン (国際) 牝 (指定) 馬齢
とA列に漢字、カタカナ、ひらがな、英数字、記号などが入り混じった長い文字列があります。この中から
B列に時刻(9:50や15:35)を、
C列に距離の1200や1600(mなしの数値だけ)を抽出したいのです。
※文字列の中に"()"や"・"などは複数あったりしますが、":"と"m"は1つずつしかありません。
時刻と距離を抽出する関数を教えてください。
よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
とりあえず「とっかかり」としての一例です。
B1 =VALUE(MID($A1,SEARCH("??:??",A1),5)) ※時刻の1文字手前に必ず半角スペースが入ってる前提 C1 =VALUE(MID($A1,SEARCH("????m",A1),4)) ※距離が必ず4桁である前提
しかし実際には、そんな都合良く前提条件は整ってなどいない。 ・・・と推察しますので、ベテランさんの回答を待ちましょう^^;
(白茶) 2018/03/02(金) 19:39
距離は ↓ と何が違うんですか? 『文字列の中間から指定の数値を抽出したい』(ひろ) http://www.excel.studio-kazu.jp/kw/20180214154608.html
確認だけ (笑) 2018/03/02(金) 20:11
※時刻の1文字手前に必ず半角スペースが入ってる前提
※距離が必ず4桁である前提
都合良く↑この前提条件が整っていたので
上手くいきました。
ありがとうございます!
こんな短い式で出来たんですね。
エクセル初心者なもので、"??:??"とか"????m"を使う式は知りませんでした。
もしかして"2015年8月30日"とか"2018年3月3日"の年月日も
同じような短い式で抽出できたりするんですかね?
(ひろ) 2018/03/02(金) 20:50
はじめのうちは上手くいってたんですが、
文字列が増えてくうちになぜかエラーになる文字列が出てきてしまいまして…
(ひろ) 2018/03/02(金) 20:53
>同じような短い式 とまではいかないでしょうけど、同じ方向性で組み立てるなら MID関数の第3引数(文字数)をどう計算するか の部分が変更点となります。 =MID(A1,SEARCH("????年*月*日",A1),SEARCH("日(?)",A1)-SEARCH("????年*月*日",A1)+1) (VALUE関数は省略してます。必要であれば囲って下さい。) その分、前提条件も更に厳しくなります ・「YYYY年M月D日」の形式であること(特に年は「4桁」であること) ・日の「すぐ後ろ」が「()でかこった」曜日「1文字」あること ~~~~ ↑全角括弧
2つ目の条件が微妙なのではなかろうか? ・・・と憶測
(白茶) 2018/03/03(土) 09:56
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.