- ベストアンサー
再び先ほど質問をした者です・・・。
再びすいません・・・。 前者:Excel2000を使っています。 IF関数を使う際に =IF(C5="b2","ボルト","") という感じで、”b2”含む文字列すべてにあてはまる式を作ることは可能なのでしょうか? (分かりにくくてごめんなさいm(_ _)m) 今この式だと”b2”という文字に対してしか、適用されませんが、例えば”b2-1”という”b2”という文字を含んでいる文字列にも適用させたいのですが・・・。 宜しくお願いします。 --------追加でお願いします・・・。--------- 更にこれに「”b2”がなければ次は”b3”を検索し、あれば○、なければ更に”b4を検索しあれば△なければ・・・」ということは可能なのでしょうか? 本当にいつもすいません・・・。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>ある言葉を入力すると、他のページから検索してその語句が入力される。 これは VLOOKUP関数などですね。 使い方は http://oshiete1.goo.ne.jp/goo_search.php3?dummy=%A5%E1%A1%BC%A5%EB&MT=&TAB=&kw=vlookup&c=0&act.search.x=17&act.search.y=7 などの過去の質問を参考にしてもらえればいいでしょう。 なんか 条件がいろいろあるようで、それが提示されないと 希望のものには ならないと思います。
その他の回答 (7)
- imogasi
- ベストアンサー率27% (4737/17069)
#7です。 >1000近くのファイルを検索することはかのうなのでしょうか? 1000近くのファイルがあるとはエクセルのブックが 1000ほど存在する(勿論名前が違う)のでしょうか。 当初の質問文からはそんなことは窺い知れません。 IF関数の利用だって、ネストが3-4段以上の式を 1000以上のブックに亘って適用するなど、手数が 掛かってやってられないように思います。 VBAを勉強されて、対処しないとと感じます。 良く疑問点を整理されて、落ちついて質問を記述をされんことを。 処理の早いコンピュターでも、操作が絡むと「量は質の変化を引き起こす」と思いますので、数千数万と多い場合、1-2個で出来るやり方が通用するかを改めて考えないとと思います。 業務に絡んだ質問で、具体的内容を出せず、変に抽象的なのではないかと推測しますが、そこは工夫して、やや具体的に何をしたいのかを説明されては。
お礼
ごめんなさい・・・。 部品名などをそのまま明かすことはできないもので・・・。 もう少し調べてみます!
- imogasi
- ベストアンサー率27% (4737/17069)
ユーザー関数を作って見ました。ifkは勝手に付けてOK. 下記でもう一箇所あるifkはそれと合わせること。 Function ifk(s, a As String, b As String, c As String, d As String) Dim t(5) t(1) = a: t(2) = b: t(3) = c: t(4) = d k = Array("", "○", "×", "△", "□") For i = 1 To 4 p = InStr(s, t(i)) If p <> 0 Then ifk = k(i) End If Next i End Function これをVBEの標準モジュール画面に貼りつける。 ワークシートのA1からA5に 軽いb2 b3は軽い ご愛顧のc1堅牢 伝統のd1 安いb2 が入っているとして B1に=ifk(A5,"b2","c1","d1","b3")といれB5まで複写します。 B1:B5は ○ □ × △ ○ となります。 b2=>○、c1=>×、d1=>△、b3=>□の対応です。 この対応の組み合わせは変えられます。
補足
というと・・・これは・・・? 1000近くのファイルを検索することはかのうなのでしょうか?
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは IF文のネストには限界があると思いますので、&でIF文を連結してしまうという事でいかがでしょうか。 =IF(ISNUMBER(FIND("b2",C5)),"ボルト","")&IF(ISNUMBER(FIND("b3",C5)),"○","")&IF(ISNUMBER(FIND("b4",C5)),"△","")
お礼
なかなか難しいです・・・(;_;) 「ある言葉を入力すると、他のページから検索してその語句が入力される。」というコードみたいなものを聞いたことがあるのですが、それを用い方を教えてはいただけはないでしょうか? #3さんに、ご指摘を受けていますが、どうかよろしく追え願いしますm(_ _)m
- taknt
- ベストアンサー率19% (1556/7783)
=IF(ISERROR(FIND("b2",C5)),IF(ISERROR(FIND("b3",C5)),IF(ISERROR(FIND("b4",C5)),IF(ISERROR(FIND("sc",C5)),"","sc"),"b4"),"b3"),"ボルト") これで b2、b3、b4、scと対応できます。 が、IF文のネスト(IF文の中にIF文を入れること)には、限界がありますので、あと一つぐらいしかできないと思います。 もう少し 工夫すれば いくつか 増やせるかもしれませんが。
search と iserror を使えば出来ます。 =if(iserror(search("b2",c5)),"","ボルト") これを検索したい文字列分ネストすれば可能です。 質問は自分で試行錯誤した後にしてみてはいかがですか?
- losedog
- ベストアンサー率66% (22/33)
>という感じで、”b2”含む文字列すべてにあてはまる式を作ることは可能なの>でしょうか? 可能です。 =IF(COUNTIF(C5,"*b2*")>0,"ボルト","") というように、IF文の判定式で、COUNTIF関数とワイルドカードを使用します。 >--------追加でお願いします・・・。--------- IF文のネスト(入れ子)で可能です。 =IF(COUNTIF(C5,"*b2*")>0,"ボルト",IF(COUNTIF(C5,"*b3*")>0,"○",IF(COUNTIF(C5,"*b4*")>0,"△","")))
- taknt
- ベストアンサー率19% (1556/7783)
=IF(ISERROR(SEARCH("b?",C5)),"","ボルト") ワイルドカードの指定が 出来ますが これは、見ての通り bと何か一文字が 見つかった場合となります。 b2とb3、b4だけで他は検索しないのならば また、別の方法がもちえます。
補足
b?以外の文字列の検索をすることは可能なのでしょうか? (例)scなど・・・。 お願いしますM(_ _)M
お礼
VLOOKUP関数の場合はなかなかうまくいかなくて・・・。 IF関数を連結させてやってみたのですが、最大が約15個くらいで、それ以上いくと「数式が長すぎます」とエラーが出てきてしました。数は全部で1000個近くあるので・・・。なんのあてはまる関数がなくて・・・。 「セル(1)にAが入ればセル(2)にはBと表示され、Cを入れればDが表示される」というような事柄をたくさん作りたいです(;_;) 数式では上限があったので・・・となりますと・・・? 何を使うべきなのでしょうか? 本当にいろいろすいません・・・m 回答してくださっているみなさん、ありがとうございますmm
補足
それとですが、VLOOKUP関数だと完全一致という形になりますが、部分一致はできるのでしょうか? 教えて君ばかりで本当にごめんなさいm(_ _)m