テキストファイルから文字列をエクセルに貼りつけ、ある条件の単語のみを抽出する関数について教えてください。
(1)あらゆる文字・記号で構成されている文章のうち、” ”(二重引用符)で囲まれた中のその文字列だけを抽出するには、どのような関数があるのでしょうか。
(2)ある文章は、
(文字数はバラバラの文章).1-文章.doc、
(文字数はバラバラの文章).2-文章.doc、
・・・
となっているテキストがあるのですが、そのテキストのうち、「数字ー」の形式は同じなのですが、その「(数字)‐」以降「.doc」までの文章のみ抽出するには、どのような関数になるのでしょうか。
マクロは組めませんので、関数で教えて頂ければ幸いです。
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
今仮に、元の文字列がA1セルに入力されているものとします。
(1)
次の数式は、" "で囲まれている箇所が、必ず1箇所のみである場合に対応する数式です。
尚、" "で囲まれている箇所が、複数箇所存在する場合には、最初に現れた" "で囲まれている箇所の内側部分のみが抽出されます。
又、" "で囲まれている箇所が存在しない場合には、何も表示されません。
=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"""",))=2,MID(A1,FIND("""",A1)+1,FIND("""",SUBSTITUTE(A1,"""",,1))-FIND("""",A1)),"")
(2)
次の数式は、「-」と「.doc」が必ず1回ずつしか現れない場合に対応する数式です。
尚、「-」や「.doc」が複数存在する場合には、最初に現れた方の「-」と、最初に現れた方の「.doc」に挟まれた部分が抽出されます。
又、「-」か「.doc」の何れかが文字列中に無い場合や、
「.doc」が先で、「-」が後になっていて、「.doc」よりも前の部分には、「-」が無い場合には、何も表示されません。
=IF(ISNUMBER(FIND(".doc",A1,FIND("-",A1))),MID(A1,FIND("-",A1)+1,FIND(".doc",A1)-FIND("-",A1)-1),"")
それからもし、「-」が複数存在する場合には、次の様な数式とすれば、最後に「-」が現れる部分と、最初に現れた方の「.doc」に挟まれた部分が抽出されます。
こちらの数式も、「.doc」が複数存在する場合には対応しておりませんが、対応する関数を新たに組む事は可能ですから、その必要がある場合には、補足等でお知らせ願います。
=IF(ISNUMBER(FIND(".doc",A1,FIND("-",A1))),MID(A1,FIND("゛゜",SUBSTITUTE(A1,"-","゛゜",LEN(A1)-LEN(SUBSTITUTE(A1,"-",))))+1,FIND(".doc",A1)-FIND("゛゜",SUBSTITUTE(A1,"-","゛゜",LEN(A1)-LEN(SUBSTITUTE(A1,"-",))))-1),"")
尚、最後に現れた「-」の位置ではなく、どうしても、数字+「-」の条件に合致する「-」の位置でなければならない場合でも、(確認してはおりませんが)おそらく抽出する関数を組む事も、一応は可能だと思いますから、その必要がある場合には、補足等でお知らせ願います。
但し、数字+「-」の条件に合致する「-」の位置でなければならない場合には、非常に複雑で長い関数になる筈ですし、Excel2007よりも前のバージョンでは、もしかすると、ネストのレベル制限に引っ掛かるかも知れません。
ご回答ありがとうございます。
無事に抽出することができました。
-の数による、別の抽出方法のご提案など、実は当てはまるところがあり、大変助かりました。
ありがとうございました。
No.5
- 回答日時:
質問があいまいな点が多い。
補足のこと。
>テキストファイルから文字列をエクセルに貼りつけ
エクセルに・・・とはどのセルはどうなっているのか、具体的に実例を挙げること。
ただ貼り付けただけでは、そのままで良い場合とそうでない場合がある。データー区切り位置・・の操作をやってセルに分離すべき場合があるのだ。
>ある条件の単語のみを
条件の、とは何。持って回った言い方だが実例を挙げて質問に書くべき。
文章が、ある単語を含む場合に、その全体を抽出するのか。
文章というのは、どう区切られるのか。
(2)は(1)の詳細説明のつもりか、別内容の質問か。
DOCはワード文章だが、それをコピーしてエクセルシートに貼り付けるのか
表題的にXXX.docとなった文章がメモ帳などで読める文書であるのか?
質問に1文章ぐら全文書例を挙げて説明のこと。
抜き出し該当内容は、数字ーということは、何でも数字は該当するのか、指定の数字なのか?
ーー
エクセルの関数で、数字(続いた数字文字列の塊)の始まる位置や終わる位置を見つけるのは難しい関数になる。
http://www.geocities.jp/chiquilin_site/data/0502 …
ーーー
数字(続いた数字文字列の塊)の始まる位置や終わる位置を見つけるのは、VBAでも1文字ずつ判断して探すのだろうと思う。
ーー
ハイフンが必ずあり(その後の文章にないなら)ハイフン1文字を目安にするほうがやさしい。
No.4
- 回答日時:
>半角の""に囲まれた
=REPLACE(REPLACE(A1,FIND("""",A1&"""",FIND("""",A1&"""")+1),999,""),1,FIND("""",A1&""""),"")
>…数字-文章.docの文章
=SUBSTITUTE(REPLACE(A1,1,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}&"-",A1&"1-2-3-4-5-6-7-8-9-0-")+1),""),".doc","")
No.2
- 回答日時:
「二重引用符で囲まれた」の「二重引用符」にも幾つか種類があります。
次のどれに該当しますか?
1.左側も右側も半角文字の「"」(34)
使用例: "文字列"
2.左側も右側も全角文字の「”」(8521)
使用例: ”文字列”
3.左側も右側も全角文字の「“」(8520)
使用例: “文字列“
4.左側が「“」(8520)で右側が「”」(8521)
使用例: “文字列”
【注】
左右で全半角混在は無いものとします。
上に示した 34、8520、8521 の数値は、ASIIコードまたは JISコードを意味しています。Excel の =CODE()関数で得られる数値です。
この回答への補足
ご質問の件ですが、1番の左右とも半角の"" です。
一例ですが、 <DDD="0.2572130370637403">\\1.1.1.1\1-あいうえお.doc
の中から、
私の質問の1 については、""内の数値のみの抽出、2については、別の列で、あいうえお 部分のみ抽出をしたいと考えております。2については、-文章.docという構成は同じです。
アドバイスのほど、宜しくお願いします。
No.1
- 回答日時:
A1セルにそれらの言葉が入っているとして。
>” ”(二重引用符)で囲まれた中
ご質問に書かれているとおりに「全角文字の””」で囲われている場合
=REPLACE(REPLACE(A1,FIND("”"",A1&"”"",FIND("”"",A1&"”"")+1),999,""),1,FIND("”"",A1&"”""),"")
実は本当は「半角文字の""」だった場合
=REPLACE(REPLACE(A1,FIND("""",A1&"""",FIND("""",A1&"""")+1),999,""),1,FIND("""",A1&""""),"")
>数字-文章.doc
=REPLACE(A1,1,MIN(SEARCH(JIS({0,1,2,3,4,5,6,7,8,9}),JIS(A1)&JIS(1234567890))-1),"")
こちらも寄せられた回答の式によっては,半角の数字なのか全角の数字なのかを区別する場合があります。
本当のあなたのデータがどうなっているのかキチンと確認して,寄せられた皆さんのアドバイスをしっかり試してから,良い結果が得られる数式を使う必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
X-Ripperというフリーウェアに...
-
ACCESSのクエリー抽出条件にIIF...
-
AccessのWHERE句において、変数...
-
awkでスラッシュがある動的変数...
-
【エクセルVBA】 A1セルを参照...
-
「パラメータが少なすぎます。3...
-
Accessで、条件に一致するレコ...
-
【AccessVBA】レコードセットOp...
-
Accessで○ヶ月前以前を抽出する...
-
未審査請求包袋抽出表作成とは...
-
コンボボックス全ての値を取得...
-
Access チェックボックスを利用...
-
access クエリ yes/no型のクエ...
-
Access2016でのfilter後に並べ...
-
Access2010クエリ抽出条件(Like)
-
アクセスのテキストボックスでO...
-
Excel 文字列から6桁の数値の抽出
-
Access フォームコンボボック...
-
PDFファイル/抽出許可され...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
PDFファイル/抽出許可され...
-
Excel 文字列から6桁の数値の抽出
-
ACCESSのクエリー抽出条件にIIF...
-
X-Ripperというフリーウェアに...
-
access クエリ yes/no型のクエ...
-
PDFファイルから特定の文字を検...
-
AccessのWHERE句において、変数...
-
「パラメータが少なすぎます。3...
-
【AccessVBA】レコードセットOp...
-
未審査請求包袋抽出表作成とは...
-
アクセス 同じフィールド(テキ...
-
Access チェックボックスを利用...
-
エクセル VBA メール本文に指定...
-
エクセル関数で住所から丁目番...
-
Accessの選択クエリの抽出条件...
-
ACCESS クエリ 条件以外のレ...
-
コンボボックス全ての値を取得...
-
エクセルで色の付いたセルを抽...
-
Access フォームコンボボック...
おすすめ情報