• ベストアンサー

文字列 処理 excel

excelでA1に"\"を複数個含む文字列があります。 そこでその文字列の中で2番目の¥の位置を知るために、 式=SEARCH("\",A1,SEARCH("\",A1,1)+1) を採用 そこで¥が2つ以上あれば、正解となりますが、 ひとつ以下の場合は,#VALUE!となりますよね。 そこで¥が、ひとつ以下の場合は0を出力するようにしたいがどうすればいいか。

  • taktta
  • お礼率72% (1031/1430)

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

  • ベストアンサー
noname#176215
noname#176215
回答No.3

=IF(COUNTIF(A1,"*\*\*"),SEARCH("\",A1,SEARCH("\",A1)+1),0) とすれば 一応お望み通りになると思います。

taktta
質問者

お礼

おかげで解決しました。 どうもありがとうございました。

その他の回答 (2)

  • yuu_yuu
  • ベストアンサー率41% (34/81)
回答No.2

少し式が長く、もっと頭のいい式があると思いますが。。。。 =IF(ISERROR(SEARCH("\",A1,SEARCH("\",A1,1)+1)),0,SEARCH("\",A1,SEARCH("\",A1,1)+1)) ベタですみません;;

taktta
質問者

お礼

おかげで解決しました。 どうもありがとうございました。 とても参考になりました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 =IF(LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))>1,SEARCH("\",A1,SEARCH("\",A1,1)+1),0)

taktta
質問者

お礼

おかげで解決しました。 どうもありがとうございました。

関連するQ&A

  • スペースを含んだ文字列から文字列の抽出

    エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • EXCEL関数 文字列の一部の数字文字を数値化して計算につかいたい

    EXCEL関数について質問です。 あるセルの文字列に記載されている一部の数字文字を 数値化して計算につかいたいと思っています。 <例>  あるセルの文字列(A1)⇒あいうえお12345番目の方  出力したい数字文字⇒12345 知る限りの関数を使って以下の関数式を作ってみました。 (1) MID関数を使う  最初の文字「あいうえお」は10バイトなので開始は「11」としました。 (2)後に登録されている「番目の方」を除きたいので  SEARCHB関数を使って、「番目」の開始バイトを見つけ  そこから最初の文字バイト「11」を引き、抽出するバイトを求める。 (3)抽出した文字列を数値に変換するVALUE関数を使う。 次の関数式を作ってみました。   =VALUE(MIDB(A1,11,SEARCHB("番目",A1,1)-11)) でも結果は「」となります。 何がいけないのかわかりません。エラーの原因がわかれば教えて下さい。 ほかによい方法があれば教えてください。 よろしくお願いします。  

  • 【エクセル】もし、A1に文字列が入っていたら・・・

    既出でしたら、申し訳ありません。 エクセル初心者です。 もし、A1に文字列が入っていたらB1は文字列を表示 もし、A2が空欄であったらB2は空欄 という関数を使いたいのですがどうしたら良いでしょうか。 以下 シートイメージ --------   A1  B2 1 佐藤 2 -------- 単純に=IF(A1,A1,"")で、返ってくるかと思ったら#VALUE!が出てダメでした。 どうぞ宜しくお願い致します。

  • Excelでの文字列とりだしについて

    Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。       A         B      C      D        E 1  りんご   (式)        りんご  みかん 2  ばなな  (式)        ばなな すいか 3  ぶどう   (式)        すいか みかん 4              (式)        りんご  すいか      5              (式)        ぶどう  みかん                                      

  • Excelで文字列セルにて条件式を設定するには

    Excelにて、書式設定が「文字列」のセルに以下の条件を設定するにはどうすればよいでしょうか。 どなたか教えてください。 Excelのマクロ機能を使用して、CSVデータを取り込み、シート上の所定のセルにCSVデータを出力させている既存システムがあるのですが、出力の際に次のような条件を追加したいと考えています。 なお、マクロの修正にて対応できればいいのですが、システムの設定上、マクロをいじることができないため、なんとかシート上で条件式にて対応したいと考えています。 列Bのセルに、隣の列Aの値をみて出力する内容を変えるための条件式を設定したい。 なお、列A,Bともに条件を設定する対象は複数行を想定。ともに書式は文字列。 例) ・A1の値が空欄でないとき、B1には取り込んだCSVデータの値を表示。 ・A2の値が空欄のとき、B2には固定で”あああ”と表示(現行ではA2のデータ元CSVがスペースの場合、B2のデータ元も必ずスペース。よって、A2、B2ともに空欄になっている)。 とりあえず、列BにIF文の条件式を設定してみたのですが、文字列セルのため、設定した条件がそのまま表示されてしまいます。 なにかよい方法はないでしょうか。よろしくお願いします。

  • エクセル:文字処理

    エクセル:文字処理 A列(A1~A10)に文字、数字、あるいは記号データが入っています。 A列のデータの先頭2文字が、最初に数字、次に[.」のときのみデータそのままをB列に、そうでないなら、スペース(“”)をB列に表示したい。式はどう記述すればいいか。

  • エクセル 複数の文字列を分別したい。

    エクセル2003で質問です。 1列に複数の文字列が並んで入力しています。 「ABC01」「BBC03」「ABS49」などです。 例えば前3文字アルファベット部が複数の指定した文字列を「A」「B」などに分類Aしたいのです。 「ABC01」「ABC54」など前3文字が「ABC」のものと 「BBD03」「BBD58」など「BBD」を「A」 それ以外を「1」とするという式を作りたいです。 下2桁の数字がバラバラなので"ABC*","BBD*"を使って いろいろ試してみましたが・・・ 限界です。よろしくお願いいたします。

  • EXCELに出力した文字列データの変換

    あるシステムから固定長のデータをEXCELに出力しました。 しかし、すべて文字列の型になって、集計できません。 数字の場合はVALUE関数で文字を数字にするというのはできるのですが、 日付 例えば 070730 を 2007/7/30の日付型にしたい場合は、 どうすればよいのでしょうか?  よろしくお願いします。

  • EXCEL 文字列比較

    EXCELを使ってA1とA2文字列を比較してA3にA1とA2で同じ文字はそのまま出力して間違っている文字の部分だけXに置き換えて出力することは可能ですか? 例) A1 ABCDEFG 比較セル A2 ABDCEFG 比較セル A3 ABXXEFG 比較したものを出力するセル

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

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

専門家に質問してみよう