- ベストアンサー
EXCELで表示形式について。。。
EXCELで表示形式でユーザー定義を使用した時に、 その値で検索したいのですが、どうしたらよいのでしょうか? Aの列に表示形式をユーザー定義で"A-"##にしました。 セルには数字のみ入力しました。見えているのはA-20とかA-15とかです。 その値でVLOOKUPの関数で検索したいのですが、できますか? ユーザー定義ではA~Zを使用してます。 セルには10~55までの数字を入力して、表になってます。 シートをコピーして形式を選択して貼り付けしてもセルに入力した数字のみで、 ユーザー定義で表示している"A-"の部分はコピーできません。 もう一度、入力しなおしたくはないので、お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAなら可能でしょう。 A列に2文字(何桁でも可)の数字が入っているとします。 書式がユーザー定義で,A-nnやB-nnやC-nn・・になっている(見えている)とします。B列にA-nnのようにデータを 自動でセットするには Sub test01() d = Worksheets("sheet1").Range("a1").CurrentRegion.Rows.Count For i = 1 To d a = Cells(i, "A").NumberFormatLocal Cells(i, "B") = Mid(a, 2, 2) & Cells(i, "A") Next i End Sub で出来ます。 Sheet1となっているシート名は、実際に合わせてください。 A列と仮定しているところを、B,C列に変えた場合、どこを 変えるべきは、容易に判ると思います。
その他の回答 (3)
- itab
- ベストアンサー率50% (431/861)
たびたび失礼します。 数値を文字列にするにはTEXT関数を使用します。 「=TEXT(指定セル、”A-##”)」で文字列には変換できます。 ただ、A、Bなどとそれぞれに変換する必要があります。 もっといい方法があったらと思いますが。
お礼
ありがとうございます。 TEXT関数を使って一部のみ変換してみました。 それからだと、検索できますが、 やはり、これぞれを変換するのが大変なので。。。 計算するときに、表示桁で計算をできるように、 見えているセルの文字列で検索はできないものでしょうか?
- itab
- ベストアンサー率50% (431/861)
【お詫び】 No1で回答したitabです。再確認しようと、アルファベットを変えてやってみたのですが、うまくいきませんでした。(A-15をB-15とかに) 検索データを文字列に変えるとうまくいくのですが、これではだめでしょうね・・・・・・。
補足
回答ありがとうございます。 ウィザードがあることを知りませんでした。 勉強になりました。 セルの中にはA-15だったら15としか入力していないので、 文字列にすると15なってしまいます。 その表の中にはB-15もあるし、C-15もあります。 どうすればいいのでしょうか?
- itab
- ベストアンサー率50% (431/861)
INDEX/MATCH関数を使用すれば出来ます。 この機能はLookupウィザードを利用すると簡単です。 ただし、はじめて利用する場合、「ツール」→「アドイン」で登録しておく必要があります。
補足
回答ありがとうございます。 VBAがわからないので、お願いがあります。 実はこのシートの中には、いろいろなユーザー定義が混じってます。 この変換は、シート単位で出来るのでしょうか? 教えていただいたものは、列単位なので、 それをシートごと別のシートにできますか? 図々しくも、よろしくお願いします。