• ベストアンサー

Excel2003 IF関数の条件指定方法 (2)

御世話になります。 先ほど 下記質問に対して的確な ご回答をいただき、一旦は解決したのですが 実は 文字列「BBB」+数字の時にも 後ろの数字を拾う必要が御座いました。 「=IF」を使い、重ねるように試してみましたがダメでした。。。 =IF(ISERR(FIND("BBB",BU33)),"",MID(W33,5,2)),IF(ISERR(FIND("AAA",W33)),"",MID(W33,7,2)) 結果は「#VALUE!」でした。。。 どこを どのように直したらよろしいでしょうか。。 以下 前回の質問文です。 お手数では御座いますが、何卒 宜しくお願い致します。 ________________________________________ 掲題の件で 質問が御座います。 「W列」に文字列「AAA」 を含むコードがあり、後ろに数字が1桁~2桁入っています。 1桁の時には数字の前に半角スペースがあり、2桁の時にはスペースはありません。 他にも文字列「BBB」+数字 だったり「CCC」+数字だったりがありますが(全部で40数種類ぐらい) 「文字列AAAの時のみ後ろの数字を表示させたい」という時に「=IF」と「=MID」の組み合わせで何とかならないかと 思ったのですが、「=IF」の理論式の中で「AAAを含む」という数式を指定する方法は御座いますでしょうか? 説明不足でしたら 何なりと お申し付けください。 宜しくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 参考になるかどうか判りませんが・・・ ↓の画像で説明させていただきます。 A列の頭3文字がAAAの場合だけ数字のみを表示すればいいのですね? 一応そういうことだと解釈させていただいての回答です。 配列数式になってしまいますので 希望とかけ離れていたら読み流してください。 表のB1セルに =IF(LEFT(A1,3)="AAA",MID(A1,MATCH(TRUE,ISNUMBER(MID(A1,ROW($A$1:$A$20),1)*1),0),COUNT(MID(A1,ROW($A$1:$A$20),1)*1)),"") この画面から数式をコピー&ペーストしてみてください。 そのままではエラーになると思いますので コピーした後に、F2キーを押すか、数式バー内で一度クリックして 編集可能にします。 そして、Shift+Ctrl+Enterキーを押してみてください。 数式の前後に{ }マークが入り配列数式になります。 それをオートフィルでコピーすると画像のような感じになります。 尚、A列のデータは20文字まで対応できる数式にしています。 以上、参考になれば幸いですが、 的外れなら無視してくださいね。m(__)m

ookami1969
質問者

お礼

ご回答 ありがとう御座います! 「ROW($A$1:$A$20),」の「20」は文字列の長さなのですか! 何で 20行なのだろう? と思っていました。。。 配列式で 優越感に浸るか みんなが分かり易い数式にするか ちょっと考えてみます! ありがとう御座いました!!

その他の回答 (5)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.6

"AAA"と"BBB"のみなら =IF(COUNTIF(W33,"AAA*")+COUNTIF(W33,"BBB*"),VALUE(TRIM(RIGHT(W33,2))),"") もっとある場合は、例としてX1:X50に数値表示するすべての文字を記入 =IF(COUNTIF($X$1:$X$50,LEFT(W33,3)),VALUE(TRIM(RIGHT(W33,2))),"")

ookami1969
質問者

お礼

ご対応 誠にありがとう御座います。 いただいた数式を貼付、編集いたしましたが結果は「#VALUE!」 で御座いました。 何ででしょう?? ありがとう御座いました!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! たびたびごめんなさい。 質問ないようを間違っていました。 頭3文字が「AAA」と「BBB」の場合に数字のみを表示させなければならなかったのですね? 前回の数式を↓のように訂正してみてください。 尚、前回はA列を参照していましたが、W列を参照したいという事なので Aの部分をWに変更してみました。 =IF(OR(LEFT(W1,3)="AAA",LEFT(W1,3)="BBB"),MID(W1,MATCH(TRUE,ISNUMBER(MID(W1,ROW($W$1:$W$20),1)*1),0),COUNT(MID(W1,ROW($W$1:$W$20),1)*1)),"") やはり配列数式ですので 前回のShift+Ctrl+Enterキーは同様です。! どうも何度も失礼しました。m(__)m

ookami1969
質問者

お礼

いつも ありがとう御座います!!

回答No.3

W33のセルに「AAA12」と入っているということでしょうか? それであれば「=IF(OR((LEFT(W33,3)="AAA"),(LEFT(W33,3)="BBB")),RIGHT(W33,2),"")」ではだめなのでしょうか? 「左から3文字が「AAA」か「BBB」だったら、右から2文字を表示しなさい」 他に簡単な関数があるかもしれませんが。。。。

ookami1969
質問者

お礼

ご回答ありがとう御座います。 数式は完璧に動作してくれました! ありがとう御座いました!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>説明不足でしたら 何なりと お申し付けください。 もし、BU3がBBBを含んでいて、W3もAAAを含んでいる場合は どちらを表示すればよいのでしょうか?

ookami1969
質問者

お礼

なるほど! ありがとう御座います!

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

=IF(ISERR(FIND("BBB",BU33)),IF(ISERR(FIND("AAA",W33)),"",MID(W33,7,2)),MID(W33,5,2)) ですね。ただし参照しているセルが正しいかどうかは分かりません。

ookami1969
質問者

お礼

ご回答 誠に ありがとう御座います。 数式、完璧に動作してくれました!!! いちいち別々にではなく 全部まとめれば良かったという感じでしょうか。 ありがとう御座いました!!

関連するQ&A

  • Excel2003 IF関数の条件指定方法

    御世話になります。 掲題の件で 質問が御座います。 「W列」に文字列「AAA」 を含むコードがあり、後ろに数字が1桁~2桁入っています。 1桁の時には数字の前に半角スペースがあり、2桁の時にはスペースはありません。 他にも文字列「BBB」+数字 だったり「CCC」+数字だったりがありますが(全部で40数種類ぐらい) 「文字列AAAの時のみ後ろの数字を表示させたい」という時に「=IF」と「=MID」の組み合わせで何とかならないかと 思ったのですが、「=IF」の理論式の中で「AAAを含む」という数式を指定する方法は御座いますでしょうか? 説明不足でしたら 何なりと お申し付けください。 宜しくお願い致します。

  • 複数条件カウント関数を調べています。

    複数条件カウント関数を調べています。 1つのシート内で、E列の中でE5と同じ文字を含むものとG列にある○/×で○表記となっているもの、両方の条件を満たしたものをカウントしたいのですが、下記関数では失敗してしまいます。 =SUMPRODUCT(($E$5:$E$83=E5&"*")*($G$5:$G$83="○")) =SUM(IF(ISERR(FIND(E5,E6:E83)),0,IF(ISERR(FIND("○",G6:G83)),0,))) 正しい関数をご存知の方、教えて頂けますか。宜しくお願い致します。

  • IF関数で結果が♯VARUE!のとき...

    EXCEL2000で、IF関数を使用しています。 条件式で,結果が♯VARUE!の時は、正を返したいのですが、うまくいきません。 教えて下さい。 実際に組んでいる式です。 =IF(FIND(" ",I6)=0,LEFT(I6,LEN(I6)),LEFT(I6,FIND(" ",I6,1)-1)) スペースがあればスペース前の文字列を返し、スペースがなければ全文字返すという式を組んでいます。 スペースがなければということで、FINDが0ならとしたのですが、上手くいかないため、エラーならば、という条件に変えようとしている次第です。 宜しくお願い致します。

  • 条件に合う文字を指定した数だけ表示する

    ExcelでA列の値を、()の前までだけB列に表示したいんです。 例) |   A   |   B   1| AI0811(AAA) | AI0811   2| Z0906(AAB) | Z0906   3| Z0808(BBB) | Z0808(   4| MM0955(BCB) | MM0955 セルB1に、  IF(A1="Z****",MID(A1,1,5),MID(A1,1,6)) と入力してB列にコピーしたのですが、どうしても例)の3行目のように"("まで表示されてしまいます。"Z"で始まる場合、頭にスペースを入れると例)2行目のようにうまくいくのですが、スペースは入れたくありません。 他にいい方法はないでしょうか?回答お願いします。

  • エクセルの関数にヒントを教えてください

    次のような文字列をif関数で文字列で示したいのですが、 条件が多すぎて長くなってしまいなかなかうまくゆきません。 A列に記述してある「01:00文字列」(全角)「01:00」(半角)のどちらであっても上2桁の「01」と表示したい(find「:」「:」で判定した) それ以外の記述(「:」「:」がない)のときはA列にある文字列をそのまま表示(ISERRを使ってみた) A列が空欄の場合は空白にする 結果表示はC列 うまくすっきりできる方法があったらご教示ください。

  • VBA EXCEL あるセルの中の一部の文字列だけをコピーするには?

    似たような質問なので二つまとめてさせて頂きますm(_ _)m 質問(1) A1セルに AAA【BBB】CCC と入力されてるとします。 【】の中にあるBBBという文字列だけをコピーしてB1セルにペーストするにはどうしたらいいのでしょうか? 条件 AAAとBBBとCCCは文字列の長さは決まっていません。 質問(2) セルA1に 有料会員登録1件500円(525円コース) と入力されてるとします。 「件」と最初の「円」の間にある「500」という数字をコピーしてB1にペーストしたいのですが、どうしたらいいでしょうか? 条件 「件」と「円」の間の数字の部分は2桁の時と3桁の時があります。 仕事量が多くてかなり困っており、VBAで自動化させたいと思います。 どうぞよろしくお願いします。

  • エクセル MID関数

    MID関数で表示した文字列が、数字として認識されません。 MID関数で表示された数字が10とします。セルはA1とします。 その後、IF式で =if(A1<5,10,0) とすると、結果は0になるはずなのに、常に真の値、10になってしまいます。 原因は、MID関数で表示された数字が文字列として認識しているからと考えられますが、対象方法をご存知の方がおりましたら教えてください。 よろしくお願いします。

  • 「*???」という条件を検索したい

    エクセル2003です。 aaa? aaa??? aaa???? bbb??? bbb???? のうち、 aaa??? bbb??? だけ検索されるようにしたいのですが 検索条件が ----------------------------------- 検索する文字列:*~??? 検索対象:値 セル内容が完全に同一であるにチェック ----------------------------------- だと aaa??? aaa???? bbb??? bbb???? が検索されてしまいます。 ----------------------------------- 検索する文字列:*??? ----------------------------------- にすると、全部検索されます。 やりたいようにするにはどうすればいいでしょうか? よろしくお願い致します。

  • Excel関数

    お世話になります。 Excelで、あるセル内の「~~Number○○~~」という文字列から、前後の不要な文字列を省いて「Number○○」部分だけを抽出する方法(関数?)はありますか。  注)○○の部分には様々な数字が入り、1桁の場合と2桁の場合があります。 また、「~~Number○○~~」という文字列から、自分で指定した特定の数字を含む場合のみ「Number○○」の文字列だけを抽出する方法もありますか。 ご教示いただきたく存じます。よろしくお願いします。

  • Excel関数について

    WindowsXPのExcel2003を使用しています。 あるデータ(文字列)の先頭の空白を削除して、 文字列を再取得したいのですが、うまくいきません。 例えば、 「 test これはテストです。」 という文字列を 「test これはテストです。」 という風に、頭のスペースのみ削除したいです。 何かいい方法はありますでしょうか? ちなみに文字列は決まっていません。 find関数等で、"スペース以外の最初の文字位置"などが取得できるといいと思っているのですが。。。 よろしくお願いします。

専門家に質問してみよう