• ベストアンサー

EXCELで文字列の特定の文字の位置を知る方法

EXCELで文字列の特定の文字の位置を知る方法 EXCELでセル中の文字列、例えば、"abc 4/3 5/5 6/4" の最後の"/"の位置を知る方法を関数の組み合わせで出来ますか? 教えてください。"/"の数は任意で最後の"/"の位置を知りたいのですが??? どうかよろしくお願いします。VBAでなく関数の組み合わせでお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

対象文字列に ^ が絶対に出現しないなら =FIND("^",SUBSTITUTE(A1,"/","^",LEN(A1)-LEN(SUBSTITUTE(A1,"/","")))) で目的を得られるはずです。 概略を説明すると 元の文字列長と ”/” を抜いた文字列長の差から ”/”の数を知り、 最終の”/”を文字列中に存在しない ”^”に置き換え ”^”の位置を得ています

tatotu
質問者

お礼

ありがとうございます。 試してみます。

その他の回答 (2)

noname#204879
noname#204879
回答No.3

気が向いたら、次の配列数式をお試しあれ {=MAX((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)="/")*ROW(INDIRECT("1:"&LEN(A1))))}

tatotu
質問者

お礼

ありがとうございます。 試してみます。

回答No.2

セル中の文字列の長さは不定なんですかね。とりあえず30文字まで の対応ですが、 =max(index((mid(A1,row(1:30),1)="/")*row(1:30),0)) という手口もあります。文字列がもっと長いかもしれない場合には row(1:30)を増やして下さい。使っちゃいけない文字はありません。 これは対象文字列を1文字ずつバラして"/"と比較し、返ってきた論 理値に何文字目かのフラグをかけ算して{0;0;0;0;0;6;0;0;0;10;..} という配列を生成して、その要素の最大値を見つける方法です。

tatotu
質問者

お礼

ありがとうございます。 試してみます。

関連するQ&A

  • Excel で特定の文字を取り出してその文字だけをコピーする方法

    VBAや関数に詳しくないので、というよりもExcelにあまり詳しくないので、とりあえずこうすればできるという方法を具体的に教えていただければと思います。 やりたいことは2つあります。内容はそれぞれこんな感じです。 (1) セルA1に”・・・・・・・○”  (・は任意の文字とします。)   セルA2に”・・・・・・・×”  (抽出したい文字は最後に来ます。) とあったとしたら セルB1に”○” セルB2に”×” というふうに特定の文字をコピーする。 それらの文字が含まれていなかったり、あってもそれが最後でなければ何もしません。 (2) (1)で作ったシートを他のシートにコピーしたとして、そのシートには列2に特定の文字○、×などが入っています(空欄の場合もあります。)。この中から列2の内容が×の行を削除します。 Officeについては詳しくありませんが C、C++やJavaなどは使っていたのでスクリプトについては読んでいるうちに慣れると思うのですが、肝心のExcelを使いこなしていないのでこれをマクロで保存した方がいいのか関数にしたほうがいいのかということもはっきりしていないレベルですのでその辺も交えて教えていただけるとありがたいです。 本来であれば自分である程度の勉強をしなければいけないのはわかっているのですが、急ぎということでよろしくお願いします。

  • Excelで特定文字を数える

    Excelを使っています。 かなりのデータ(行・列ともに)があるのですが、 それぞれのセルの文字列の中にある”・”の数を数えて 別のセルに表示させたいのです。 文字列操作の関数に、文字列の中から特定文字を探し出し その位置を知らせる、というものは見つかったのですが、 上記のような条件に当てはまるものはみつかりませんでした。 どういった方法があるでしょうか。 よろしくお願いします。

  • Excelで文字列の中から特定の文字の出現回数を数える

    いつもお世話になっています。 また皆さんのお知恵を拝借させて下さい。 Excelで、複数のセルに入力されている文字列の中から特定の文字だけ の個数を数えるにはどのような方法があるでしょうか。 例: A1セル あ A2セル あいう A3セル あう A4セル いう ※セル毎の文字数は一定ではありません。 上記のような場合で、「あ」は3個、「い」は2個、「う」は3個というように 特定の文字の出現回数を数えたいのです。できればVBAやマクロではなく、関数がいいのですが・・・ よろしくお願いします。

  • エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。

    エクセルで特定の範囲の文字列を抜き出したいのですが関数がわかりません。 抽出の条件は「セルの中の【 】でくくられた部分」(【】も含む)です。 各セル内の文字列はすべてこの【】から始まる文章で構成されているのですが、 【】内の文字数はそれぞれ違うという状態です。 文字数が固定の場合の関数は思いつくのですが、異なる場合がよくわかりません。 よろしくお願いします。

  • Excelでセル内の文字列のみをコピーする方法

    Excelでセル内の文字列のみをクリップボードにコピーする方法を教えてください。 ※クリップボードにコピーをする方法であり、他のセルに値のみをペーストする方法ではありません。 満たしたい点は2つです。 ・表示している文字列のみを取得 ・複数のセルを同時にコピー 一つのセルに以下の文字列が入っていた場合(#以外) #123 #"abc" コピーするとクリップボードを文字列として取得すると以下の文字列が得られます #"123 #""abc""" これを以下の文字列が得られるようにしたいのです。 #123 #"abc" 1つのセルだけでいい場合は、セルを編集状態にしてコピーしたり アクティブセルの数式バーをコピーすればいいのですが、 これは当然、複数のセルを同時に選択する場合には使えません。 VBAを使う方法でもそうでなくてもかまいません。 (VBAの場合はコードもお願いしたいです) よろしくお願いします。

  • EXCELで、文字列を任意の文字数毎に分割するには

    ≪やりたい内容と条件≫ ◆EXCELで、文字列を任意の文字数毎に分割したいです。 ◆文字列は、全角・半角・記号を含みます。 ◆1つのセルが半角80桁という制限があり、その上限を超えると、右の次のセルに流し込まれるようにしたいです。(A1は元の文字列1500桁くらい、以降B1,C1,D1,E1・・・という具合に流し込み) ≪試した内容≫ MIDB関数を見つけ挑戦しましたが、1つ目のセルはうまくいきますが、その後が出来ません。例えば、文字列が「・・・・・・abcあいうえお」となっていた場合、B1は「・・・・・・abcあいう」、C1は「 お」(「お」の前は、半角スペース)となります。 何かよい方法はないでしょうか。 一度に出来ないようであれば、A1-B1で残りの文字列が表示できれば、それ以降はまた関数を入れて一つ一つやっていきたいと思っています。 よろしくお願いいたします。

  • Excelにて任意の位置の文字列を抽出したい

    Excelにて任意の位置の文字列を抽出したい セルA1に、あたい1(837,1077,132) セルA2に、あたい2(657,100,32) セルA3に、あたい3(20,10000,888) のような値が入っています。 ここから、132、32、888を取り出したいのですが、どのような式を入れたら良いでしょうか? Right関数だと上記のように桁数が2桁と3桁と混在している場合に抽出できませんでした。

  • エクセル ある文字列を入れるとある文字列を返す

    エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。

  • 文字列のなかの特定の文字の数

    エクセルの関数式を使って、ある文字列のなかに、特定の文字の数を取得する方法を教えて下さい。 つまり、セルA1に「山口県山口市山田町」という文字列が入力されているとき、「山」という文字が何個あるかを取得したいのです。

  • エクセルVBAで特定の文字列が見つかったらIF文以下を実行するには?

    お世話になります。 エクセルVBAで、特定の1列を範囲指定して、範囲内のそれぞれのセルにある特定の文字列が見つかった場合にIF文以下の命令を実行するには、どのようにすればよろしいのでしょうか。それぞれの文字列の中の特定の文字列の位置は決まっていません。 よろしくお願いします。

専門家に質問してみよう