- ベストアンサー
1と入力でAAAと表示を10種つくりたいのですが
セルに”1”と入力すると”AAA”と表示(例:1→男、2→女)されるようなパターンを10種つくりたいのですがうまくいきません。 セルの書式設定のユーザー定義を変えて2種類までは作れたのですがそれ以上ができません。 調べた結果4種類までは作れることはわかったのですが、それ以上はできないのでしょうか? できれば”0”~”9”までの数字を入力だけで文字列を表示したいのですが、良い方法はないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
最も簡単と思う方法を記します。 下に添付した図の黄色いセルのようなデータシートを作ります。下の図のように同じページ(ワークシート)でも良いし、別のワークシートとしても、どちらでも構いません。 で、入力欄(0~9を入力する欄)を、下の例では5と入力しています。 答えが出るのが参照欄(オレンジのセル)です。ここの式は下の通りです。 =VLOOKUP(A13,A1:B10,2) 式の意味ですが、「この範囲(上で述べた黄色のデータシート)の中の左端の列を参照して、同じ数字があったらその行のn列目の値を引いてきます」というような関数です。 最初のA13は入力値を入れるセルです。 次のA1:B10がデータシートの範囲です。 最後の2は、データシートの「2列目」という意味です。 以上から入力欄に5を入力すると、黄色の範囲の左端の列を参照し、5がある6行目を参照し、上記範囲の「6行目の2列目」ということでFFFを引いてきます。 以上です。参考になれば幸いです。
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
NO1様の通り、入力セルを変更する方法はVBAしかないと思います。 同ブック内全てに適用されますので実用向きではありませんが、、オートコレクトで設定する方法は如何でしょうか。 操作は、エクセルグレードが不明ですので「オートコレクト」で検索して下さい。
お礼
ざっと調べただけできちんと把握したわけではないですが、なんとなく求めていた形に近い気がします。 もう少しきちんと調べ、試してみたいと思います。 ご回答ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
残念ですが書式設定では出来ません。 LOOKUP,VLOOKUP,HLOOKUP,CHOOSE,INDEX等の関数で別セルに呼び出すか VBAを使って置換する方法になります。 関数を使う場合 AA1:AA10={0,1,2,3,4,5,6,7,8,9} AB1:AB10={"","AAA","BBB","CCC","DDD","EEE","FFF","GGG","HHH","III"} として =LOOKUP(A1,AA1:AA10,AB1:AB10) =VLOOKUP(A1,AA1:AB10,2,FALSE) =CHOOSE(A1,"","AAA","BBB","CCC","DDD","EEE","FFF","GGG","HHH","III") =INDEX(AB1:AB10,1,A1+1) VBAの場合(下記はA列で1桁の数字が入力された場合のみ有効です) Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Select Case Target.Value Case 0 Target.Value = "" Case 1 Target.Value = "AAA" Case 2 Target.Value = "BBB" Case 3 Target.Value = "CCC" Case 4 Target.Value = "DDD" Case 5 Target.Value = "EEE" Case 6 Target.Value = "FFF" Case 7 Target.Value = "GGG" Case 8 Target.Value = "HHH" Case 9 Target.Value = "III" End Select End If End Sub Select Case分の使い方 http://it.kndb.jp/entry/show/id/648
お礼
回答ありがとうございます。 お礼が遅くなりすみませんでした。 書式設定でできないのは残念です。 教えていただいたやり方を参考に、自分に合ったものをさがしていきます。
お礼
非常に分かりやすい回答ありがとうございました。 さしあたってこのやり方でやっていこうとおもいます。 他にも方法があるようなので、もっと勉強して自分に合った方法を探していきます。