[[20180302185720]] 『難しい抽出…』(ひろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『難しい抽出…』(ひろ)

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.