[[20031204100209]] 『*の使い方を教えて下さい』(トップ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『*の使い方を教えて下さい』(トップ)

すごくなやんでいます。教えて下さい!!

    A       B

1  660     CP

2  660U    CP

3  6022    NP

4  215     GP

5  215F    GP

6  215FA   GP

VLOOKUPを使用して、上記のような結果が出るように、検索値に660でも660Uでも

CPと表示されるように、すなわち660でも660の後にどんな文字列が付いてても

660を含む検索値は、CPと表示されるようにしたいです。

215なら215の数字を含むものは、すべてGPと表示されるように・・・

よろしくお願いします。あまり説明がうまくなくてすいません。


 先頭3文字が決まっている場合、一番簡単なのは下の表にして、
 =VLOOKUP(MID(XX,1,3),A1:B3,2,FALSE)

    A       B
 1  660     CP
 2  602     NP
 3  215     GP

 (kazu)


回答ありがとうございました。

上記の通り表を作り、式をいれましたが、#NAME? とエラーが表示されます。

XXっていうのは、エックスエックスでいいんですよね?


 おじゃまします。
 kazuさんが作成した表を下記のセル番地(求めたいデータに影響のない所で作成)
 を変更してみました。
     A       B
 100  660     CP
 102  602     NP
 103  215     GP

 B1=VLOOKUP(MID(A1,1,3)*1,$A$100:$B$103,2,FALSE)で下方向へコピーでどうですか?
 (つぐお)


できました!! すごいです。ありがとうございました。

さらに、教えて頂きたいのですが、660といったように必ずしも3文字と決まって

いなくて、2文字の時や4文字の時は何かよい方法がないでしょうか?

   A         B

  6250      CBC

  6250FA    CBC

  20        AB

  20C       AB

となるようにしたいのですが・・・・・

教えて下さい。 お願いします。


 こんちわ。
 なかなかレスがつきまへんなぁ。
 ほんなら、何文字でもOKっちゅうユーザー関数を使うてみまっか。
 これはテスト用ですさかい、作業列はH列に検索文字I列に出力文字を(5行目まで)
 使うてあります。せやから、もし本格的に使うようやったらコードの中の矢印を変更
 してもろたら何処にでも作業列は移せますわ。(H列は半角で)

 Alt+F11でVBEを開く
 「挿入」→「標準モジュール」を選択
 下のコードをコピペ
 Alt+Qでエクセルに戻る

 これで準備OKですわ。あとは適当なセルにデータ(全角でもOK)を書き込んで
 =look(a1)等と入力してみておくんなはれ。下方向にコピーするとちゃんとお望みの
 文字が湧いてきまっしゃろ。
 これはトップさん固有の関数ですさかい、=topに変えてもよろしいんやで。
   ほな...(弥太郎)
 Function look(data)
    Dim n As Integer
    Application.Volatile
    data = StrConv(data, vbNarrow)
    data = Val(data)
    n = Application.Match(data, Range("h1:h5"), 0)
                                          '↑
                              'ココで作業列を指定

    look = Cells(n, 9)  '→ヒットした作業列の右隣
 End Function

 ごめん、矢印に’マークを忘れとった。


 2,3,4文字で自由に使えるいい方法が思い浮かびません、

 先頭からは数字で最後につく文字は必ず英字でしょうか?

(kazu)


みなさんどうもありがとうございます。VBAを書いていただいたのを、コペパ

したのですができませんでした。VBA自体まったくわからないので、コペパした

だけで後、どこをどうしたらいいのかわかりませんでした。すいません。

kaZuさん、先頭は必ず数字(2ケタの時もあれば3ケタ・4ケタ)で、数字だけの

時もあれば後ろに文字が付きます。 文字は、ほとんど英字ですが例外でUとか

もあります。

どうか、よろしくお願いします。


 一見簡単そうで、簡単では無いですね。

 ユーザー関数を作って頂いて
 文字 or 数字が何文字か判断させて
 IF LEN 等々を使って分岐して...

 書くだけのほうは、何でも書けますね。やはり簡単では無いですね。   (jun53)


 なんとか で き ま し た ゾ。
 原理的にキーの長さが足りない分だけキーの後ろから取ってきてくっつける
 です。

 セルA1 にキー(探したい 6022FA など)を入力します
 セルB1 に =VLOOKUP(A1,$C$11:$E$15,3,FALSE) と入力します。
 セルC11 に
 =IF(LEN($A$1)-LEN(D11)>0,D11&RIGHT($A$1,LEN($A$1)-LEN(D11)),D11)
 セルD11 に 660 などデータを入力します。
 セルE11 にCP など返すべき答えを入力します

 セルC11 式を下にC15 までドラッグして、データをD11 からD15 の間に
 答えをE11 からE15 に記入します。

 (kazu)

 ぎょえっ
 簡単では無いですね。 と書いて、油断させといて、、、
 こっそり作ろうと思ったらもう出来てますねー(笑)

 トップさん、お先に試してみました、ばっちりです。良かったですねー   (jun53)


おはようございます。 本当〜〜〜〜!!! すごいです。 出来ました♪♪♪

ほんと、意見を下さったみなさんありがとうございました。これでなんとか仕事を先に

進める事が出来ます。感激です。本当にご親切にありがとうございました。

また、質問すると思いますので、そのときはよろしくお願い致します。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.