お願いいたします。
エクセルの「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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルを活用した受注表作成の中で関数・数式を教えてください。 3 2022/07/23 08:14
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) 【Excel】複数列ごとに取得するセルを変更したい 2 2023/03/23 21:04
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) エクセルで教えて下さい。 2 2022/05/18 13:00
- 数学 数1 この問題の(3)で少なくとも一方が実数解をもつ。のとき①②の式をそれぞれD1,D2とした時D1 5 2023/08/01 01:46
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
VBAの文字列の中に”(全角のダブ...
-
Accessで日付や数値を全角で表...
-
エクセルの検索が正しくできな...
-
Accessのテキストボックスの入...
-
小説の点々は……と繋がらなくて...
-
VBA 文字に半角が含まれて...
-
「 _ _ 」の正式名称を...
-
住宅にカナを入力する際に丁目...
-
プログラミングでは、半角括弧...
-
Accessでのグループ化で全角・...
-
[Excel VBA] ODBCによる外部デ...
-
コマンドプロンプト 全角を含ん...
-
IEからEdgeへの移行に伴うIMEの...
-
Excel VBAでオートシェイプ内の...
-
エクセルでの”々”の扱い
-
Excelの中に全角ひらがな、漢字...
-
VBScriptの正規表現で半角スペ...
-
全角文字だけ抜き出したい
-
エクセルにMicrosoft Barcode C...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
住宅にカナを入力する際に丁目...
-
全角英数字の必要性が理解できない
-
Excel関数またはVBAでの質問に...
-
エクセルにMicrosoft Barcode C...
-
IEからEdgeへの移行に伴うIMEの...
-
VBA 文字に半角が含まれて...
-
COBOL・全角判定
-
プログラミングでは、半角括弧...
-
word差し込み印刷 半角カタカ...
-
メモ帳の段落の揃え方
-
よくアカウント等に使われる 半...
-
Accessのテキストボックスの入...
-
ダブルコーテーションの置換
-
エクセルでの”々”の扱い
-
小説の点々は……と繋がらなくて...
-
大文字と全角文字は同じ意味で...
-
[VBScript]バイト長の判定
-
封筒の宛先で縦書きの書き方
-
VBで、String型のデータが、...
おすすめ情報