- ベストアンサー
指定した記号の前半と後半を取り出す方法
- 対象文字列に特定の記号が複数ある場合、最後の記号を基準に文字列を分ける方法が知りたいです。
- 現在使っている関数では、特定の記号を基準に文字列を分けることができますが、複数の記号がある場合は最初の記号を基準に分かれてしまいます。
- 例えば、「田中■けんじ■30歳■アメリカ」という文字列がある場合、最後の記号の前半と後半をそれぞれ抽出したいです。
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- 特定の記号に囲まれた字を取り出すには
エクセルのある質問の追加質問です。バージョンは2003でお願いします。 【質問】特定のセルの文字列から特定の記号に囲まれた値だけを返したい 具体的には、ちょっとした文章が入力されているセルから{}の中の文字を取り出したい。 これに対し 【回答】=MID(A1,FIND("{",A1),FIND("}",A1)-FIND("{",A1)+1) とありました。 これで、たとえば 「よくがんばった。{感}動した」 → {感} を取り出すことができます。 これで、{}も残さずに、本当に中の字だけ 「よくがんばった。{感}動した」 → 感 としたいとき、もちろん上記の式を作ったあと{}を検索削除してもよいのですが 一回でできるラクな方法はありますか。
- ベストアンサー
- その他MS Office製品
- このエクセルの複雑な関数を訳してください!
こんにちは。 これから年賀状の季節ということで、エクセルでリストを作成し、印刷にまでこぎつけたいと思うのですが、「(株)や(有)を除いた会社名順に並び替えたい」と考えております。 そこで、こちらのOkwebで検索したところ、下記のような式がアドバイスされていました。とてもありがたいです。 ただ、こちらをそのまま使わせていただいてもかまわないのですが、式に興味を持ち、自分で辞書をひいて調べたところ、構造が理解できませんでした。 そこで、どなたかこちらのエクセルの式を訳していただけないでしょうか。 =CONCATENATE(LEFT(PHONETIC(A2),FIND("(",PHONETIC(A2),1)-1),MID(PHONETIC(A2),FIND(")",PHONETIC(A2),1)+1,LEN(PHONETIC(A2)))) CONCATENATE関数で、LEFT関数・MID関数・LEN関数で出したものを結合する? ・LEFT(PHONETIC(A2),FIND("(",PHONETIC(A2),1)-1) ・MID(PHONETIC(A2),FIND(")",PHONETIC(A2),1)+1 ・LEN(PHONETIC(A2) このようにわけられるものでしょうか。 アドバイス、よろしくお願いします!
- ベストアンサー
- オフィス系ソフト
- excelVBAで、Midの引数をLenで指定できる?
ワークシートSheets1上のセルA1に、次のような文字列があり、 Length 50.0mm この中の、数字の部分だけをユーザーフォームのtextbox1に抜き出したいと思っています。 Length と、単位mmは全ての場合で共通ですが、数字は50.0の場合も5.0の場合もあり、文字数がまちまちです。 textbox1.value=Mid(Sheets("Sheets1").Range("A1").value, 8,Len(Sheets("Sheets1").Range("A1").value-2) のようにMid関数の引数にLen関数を使ったり、 x=Len(Sheets("Sheets1").Range("A1").value textbox1.value=Mid(Sheets("Sheets1").Range("A1").value, 8,x-2) のように変数xを介してみたりしたのですが、mmが表示されてしまいます。 (ちなみにLenを使わずx=13と書くと、mmなしの数値だけがうまく表示されます) VBAはトライ&エラーで使っている状態で、セルの取り扱い(.valueとか.textとか)や変数の宣言はかなり適当です。 この辺りが間違っているんでしょうか?? できればMidとLenを使った解決法、それが無理なら他の方法でも結構ですので、ご教授頂けると助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル:特定文字の前後抽出で、特定文字がない場合
D列にあるテキストの中から、「>」前後の文字を抜き出すために 下記の数式を使っていたのですが、 ■>より前 =LEFT(D2,FIND("/",D2,)-1) ■>と>の間 =MID(D2,,FIND("/",D2,)+1,FIND("/",D2,,FIND("/",D2,)+1)-FIND("/",D2,)-1) ■>の後ろ =RIGHT(D2,,LEN(D2,)-FIND("/",D2,,FIND("/",D2,)+1)) D5やD6のような例外があることが分かりました。 ABC列のように、>が無い場合はカテゴリ1にするようにしたいのですが どのようにしたらよいでしょうか。
- ベストアンサー
- Excel(エクセル)
- 文字抽出
エクセル初級者です。マクロは分かりません。 セルに ”漢字 半角スペース (ピンイン表記)” されています。 例)麻婆豆腐 (mápó dòufu) これから漢字とピンインを分けて抽出したい。 対象のセルの列には漢字は1~7文字で文字数に応じてピンインも変化します。 FIND,MID,LEFTなどの関数を調べてみましたが、所望には至りませんでした。 何かアドバイスいただければ有難く。
- ベストアンサー
- Excel(エクセル)
- マクロ記録実行で実行時エラー'1004'発生
excel2010 B2セルに文字列が入っています。 文字と数値の混載です。 数値の位置は不定です。 L2のセルで、下記判定をします。 B2セルの文字列(約20文字程度)の左から4番目がドだったら、数値を抽出、ド以外だったら空白。 WEBで計算式があったので、それをそのままマクロの記録としました。 Range("L2").Select ActiveCell.FormulaR1C1 = _ "=IF(RIGHT(LEFT(RC[-10],4),1)=""ド"",MID(RC[-10],1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(RC[-10]))),)),MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))*ROW(INDIRECT(""1:""&LEN(RC[-10]))),))-1/MAX(INDEX(ISNUMBER(--MID(RC[-10],ROW(INDIRECT(""1:""&LEN(RC[-10]))),1))/ROW(INDIRECT(""1:""&LEN(R" & _ "),))+1)*1,"""")" Range("L3").Select で記録されます。 上記を、マクロの実行すると実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです。 と表示されます。 何がおかしいのでしょうか? シートで、マクロでなく、L2セルでF2リターンとする分には、数値が表示されます。 下記は、L2の中身です =IF(RIGHT(LEFT(B2,4),1)="ド",MID(B2,1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),)),MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))*ROW(INDIRECT("1:"&LEN(B2))),))-1/MAX(INDEX(ISNUMBER(--MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))/ROW(INDIRECT("1:"&LEN(B2))),))+1)*1,"")
- 締切済み
- Excel(エクセル)
- エクセルのセル内の操作について
いつもお世話になっております。 A1セル【01/29/2013 08:09:46】(文字列)→A2セル【2013/01/29 08:09:46】(日付)としたいのですが操作方法が分かりません。 A2セルに=DATE(MID(A1,7,4),LEFT(A1,2),MID(A1,4,2))と入力して日付までは表示できたのですが、時間はどうすればよろしいのでしょうか? よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルの並び替えの仕方を教えてください
質問番号:5465291で関数で文字分離ができずに困っていますと質問し、分離はうまくいきましたが、結果に対して並び替えが思うようにできません。どなたか教えてください。 回答は、 A1に値が入っているとして、 B1に =IF(ISERROR(FIND("-",A1)),A1,MID(A1,1,IF(FIND("-",A1)>0,FIND("-",A1)-1,LEN(A1)))) C1に =IF(ISERROR(FIND("-",A1)),"",MID(A1,IF(FIND("-",A1)>0,FIND("-",A1)+1,LEN(A1)),9999)) でした。 1 12 2 2111 3 という順番になってしまいます。
- 締切済み
- その他(ビジネス・キャリア)
- 文字列の中から複数の数値を取り出す
A1に画像のような2パターンの複数の数値入りの文字列が入っています この数値を1つずつ分けたい 当方 Excel 2013です 1. 現状 FIND の多用で実現できているのですが、数値が増えるとややこしくなるので、分かりやすくできないものかと質問しました。 2. また今後の拡張のため、数値の区切りを"/"でなく数値以外(2文字以上でもOK)で作れないかと模索しています。 気温28度、湿度54.7%、AB123C-456DEF7890GH-123.45JKL・・・ ←こんなのを 28 54.7 123 -456 7890 -123.45 ・ ・ ・ 合わせてご教授いただきたくお願いいたします。 一応、今使っているものを書いておきます、 A3 =VALUE(LEFT(A1,FIND("/",A1)-1)) A4 =VALUE(MID(A1,FIND("/",A1)+1,FIND("/",A1,FIND("/",A1)+1)-FIND("/",A1)-1)) A5 =VALUE(MID(A1,FIND("/",A1,FIND("/",A1)+1)+1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)-FIND("/",A1,FIND("/",A1)+1)-1)) A6 =IFERROR(VALUE(MID(A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1,FIND("/",A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1)-FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)-1)),LOOKUP(10^17,RIGHT(A1,COLUMN($1:$1))*1)) A7 =IFERROR(VALUE(RIGHT(A1,LEN(A1)-FIND("/",A1,FIND("/",A1,FIND("/",A1,FIND("/",A1)+1)+1)+1))),"-") 余談ですが A3 を =LOOKUP(10^17,LEFT(A1,COLUMN($1:$1))*1) とすると誤表示になった
- ベストアンサー
- Excel(エクセル)
お礼
無事分割加工ができました。 大変助かりました。もっと勉強しないと。。。 皆様ありがとうございました。