[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ダブルコーテーションで囲われた文字を抽出したい』(まりえ)
「Button:"OK",」から、OKだけを抽出したいです。
下記のサンプルを見つけて、目印AとBをそれぞれ、「""""」と置き換えました。
MID(対象のセル,FIND("目印A",対象のセル)+1,FIND("目印B",対象のセル)-FIND("目印A",対象のセル) -1)
=MID(K4,FIND("""",K4)+1,FIND(""""",K4)-FIND("""",K4) -1))
エラーは表示されないのですが、空白でなにも表示されませんでした。試しに、「Button:(OK)」にして、数式も(にしたところ、ちゃんとOKを抽出できました。
ダブルコーテーションで囲った文字は抽出できないのでしょうか。
どうぞよろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
MID(対象のセル,FIND("目印A",対象のセル)+1,FIND("目印B",対象のセル)-FIND("目印A",対象のセル) -1) この式は目印A、目印Bとあるように異なる目印間の文字を抜き出すもの。
=CLEAN(MID(SUBSTITUTE(K4,"""",REPT(CHAR(9),100)),100,100)) ではどうか? (ねむねむ) 2018/06/26(火) 16:04
数式は理解できませんが、、、期待通りの結果になりました!
すごい…
ありがとうございました!
(まりえ) 2018/06/26(火) 16:08
もしよろしければ、この数式の解説お願いできないでしょうか。。
どの部分が文字数に関係あるのかわかれば、カスタムして解決しようと目論んでおります、、
=CLEAN(MID(SUBSTITUTE(K4,"""",REPT(CHAR(9),100)),100,100))
どうぞよろしくお願いいたします!
(まりえ) 2018/06/27(水) 17:08
まず「"」をCHAR(9)(通常印字されない文字、CLEAN関数で消されて、通常文字列の中に現れることのない文字)100文字に置き換えている。 例えばButton:"OK", はButton:______________________________________OK______________________________, となる。 (_はCHAR(9)で100個続いているとする)
(ねむねむ) 2018/06/27(水) 17:15
ここでMID関数で左から100文字目から100文字を抜き出すと ____________________OK____________________ となりこれにCLEAN関数をかませることで_(CHAR(9))はきえて OK となる。 (ねむねむ) 2018/06/27(水) 17:17
ただし抜き出したい文字及び「"」のまえの文字数が100に近いまたは大きいとMID関数で抜き出す際に途中で切れたり 「"」の前の部分が入ってしまったりする。 (これは私の確認不足ですまなかった)
(ねむねむ) 2018/06/27(水) 17:25
で、実際に抜き出したい文字の文字数、および「"」の前の文字数はどれくらいだろうか? 式中の3か所の100をそれの数倍あるいは1桁大きい値で試してみてくれ。 もし文字数が大きすぎてうまくいかないようであればまた他の式を考えてみる。 (ねむねむ) 2018/06/27(水) 17:28
関数の説明が抜けていた。 REPT(CHAR(9),100) がCHAR(9)を100個並べたもの。 SUBSTITUTE関数で「"」を上の物に置き換え MID(文字列,100,100)) で100文字目から100文字抜き出してCLEAN関数でCHAR(9)を消している。 (ねむねむ) 2018/06/27(水) 17:32
実際に抜き出したい文字の文字数は294で、「"」の前の文字数は30でした。
3か所の100を1000にしたらいけました!
また、関数の解説ありがとうございます。
すっごい勉強になりました!!
こんな風に応用できるように、がんばります!
ありがとうございました!
たすかったー
(まりえ) 2018/06/27(水) 19:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.