
お願いいたします。
エクセルの「D列」にある( )内の文字だけを関数で抜き出したいのです。
注)そのとき、「( )」は全角半角が混在している可能性があります。
例えば
(1)D1に「○○○(□△□)」とあるとき、
E1に「□△□」
(2)D2に「○×○(■◎▼)」とあるとき、
E2に「■◎▼」としたいのです。
(3)また、D列には( )がない場合もあります。たとえば
D3「◎□△」だけの場合は、
E3には「(空白)」を返す。
私が一生懸命作ってみると下記の関数になりました。
一応、結果は出ます。
しかし、きっと《もっとシンプルに出来るはず》だと思い、勉強のためにもぜひ、ご教授ください。よろしくお願いいたします。
「=IF(ISERROR(MID(D1,(FIND("(",JIS(D1))+1),((FIND(")",JIS(D1))-(FIND("(",JIS(D1))+1))))),"",MID(D1,(FIND("(",JIS(D1))+1),((FIND(")",JIS(D1))-(FIND("(",JIS(D1))+1)))))」
No.3ベストアンサー
- 回答日時:
=MID(LEFT(D1,MIN(FIND({")",")"},D1&"))"))-1),MIN(FIND({"(","("},D1&"(("))+1,LEN(D1))
先頭の"("がない場合は空白を返します。
後方の")"がない場合は、"("以降の文字を返します。
"()"がそろっている場合は()内の文字を返します。
ありがとうございます。mshr1962さんのご指導からはいつも教えられるのですが、関数の可能性ってすごいですね。式の内容がいまだにまだ読みきれていませんが、勉強していみます。ありがとうございました。
No.5
- 回答日時:
カッコについては、作業列で、手作業の置換やSUBSTITUTEで全角か半角かにそろえて、それに対し関数を考えてはどうですか。
JIS関数を使うと元のデータと文字が、変わると思いますので、一般には望ましくないように思う。余り仮定((は全角とか、()は必ずあるとか)を置けないようなので、VBA向きの問題のように思います。
私ならカッコの全角半角を統一して
=IF(OR(ISERROR(FIND("(",A1)),ISERROR(FIND(")",A1))),"",MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1))
imogasiさん、ご指導ありがとうございます。
正統的なご指導を心より受け止めさせていただき、勉強してみます。ありがとうございました^^
No.4
- 回答日時:
No2です。
嘘を書いてしまいました。SEARCHにも半角/全角の区別があります。ごめんなさい。恥!
とりあえず、こんな感じです。
=IF(ISERROR(SEARCH("(*)",ASC(D1))),"",REPLACE(LEFT(D1,FIND(")",ASC(D1))-1),1,FIND("(",ASC(D1)),""))
もう少しすっきりした形を思いついたらまた書きます。
No.2
- 回答日時:
可能性として、
右括弧 全角
右括弧 半角
左括弧 全角
左括弧 半角
すべてなし
が考えられるようです。その場合、半角および全角の左右括弧がある場合だけ、その中身を抽出、それ以外は空白文字を返す、ということであれば、質問者の式でよいと思いますが、FINDではなくSEARCHを使用する方が簡単です。
SEARCHには、半角/全角の区別がありません。またワイルドカードを使用できます。条件式は次のようになります。
ISERROR(SEARCH("(*)",D1))
No.1
- 回答日時:
ちょっと自分で作って見ました
=IF(ISERROR(FIND("(",D1,1)),"(空白)",MID(D1,FIND("(",D1,1)+1,FIND(")",D1,1)-FIND("(",D1,1)-1))
(空白)はスペースの事だと思いますが、表示上「(空白)」としています。
これとyastaroさんとの式を比較して違うのは、ISERRORによる判断箇所ですね。
ISERRORでは、「表示する結果」のエラーではなく、最初の「(」の有無だけ判断すればいいと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 文字に半角が含まれて...
-
住宅にカナを入力する際に丁目...
-
COBOL・全角判定
-
「一角」って何でしょうか
-
IEからEdgeへの移行に伴うIMEの...
-
VBで、String型のデータが、...
-
全角数字を半角数字にする方法
-
エクセルでの”々”の扱い
-
Word2007の全角文字、全角スペ...
-
全角スペースを削除するには?
-
全角入力
-
空白を表示したい
-
Excel2010 差し込み印刷について
-
エクセルにMicrosoft Barcode C...
-
\\はエクセルでは全角?
-
英数字のみ全角から半角に変換
-
Perlの全角スペース 文字化け?
-
VBScriptの正規表現で半角スペ...
-
word差し込み印刷 半角カタカ...
-
メモ帳の段落の揃え方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
IEからEdgeへの移行に伴うIMEの...
-
英数字のみ全角から半角に変換
-
全角英数字の必要性が理解できない
-
メモ帳の段落の揃え方
-
word差し込み印刷 半角カタカ...
-
COBOL・全角判定
-
エクセルにMicrosoft Barcode C...
-
VB.net、テキストボックス入力...
-
全角入力
-
封筒の宛先で縦書きの書き方
-
いまスマホからカードの申込み...
-
エクセルの検索が正しくできな...
-
Accessのテキストボックスの入...
-
VBで、String型のデータが、...
-
char型全角数字から、int型半角...
-
エクセルでの”々”の扱い
-
「一角」って何でしょうか
-
ログインする際のIDやパスワー...
おすすめ情報