• ベストアンサー

Excel置換?

A1に010と入力すればA1に田中、020なら鈴木、030なら岡田と 入力できるようにするためにはどのようにすればよいのでしょうか? 関数で代用できるのですか?いろいろググってみましたが、なかなか良い方法が見つかりませんでした。どなたか助けて下さい! お願いします。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.6

No1 No3のmerlionXXです。 先ほどのでも作動はするのですがちょっとVBAのコードを変更させてください。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Select Case Target.Value Case "010": myStr = "田中" Case "020": myStr = "鈴木" Case "030": myStr = "岡田" Case "": myStr = "" Case Else: myStr = "非該当" End Select Application.EnableEvents = False On Error GoTo line Target.Value = myStr line: Application.EnableEvents = True End Sub

motty7777
質問者

お礼

すごい!!できました!!本当に感謝感激です!!!!! 本当に本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.5

名前入力の手間を省きたいというのであれば、#3さんの回答にある入力リストがお薦めですけど。 あとは人数次第かな?

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No1 merlionXXです。 一応VBAのサンプルも書いておきます。 以下を試してみてください。 1.該当のシートのタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Select Case Target.Value Case "010": Target.Value = "田中" Case "020": Target.Value = "鈴木" Case "030": Target.Value = "岡田" End Select End Sub '*****ここより上までをコピペ***** 3.Altキー+F11キーでワークシートへもどります。 ただし、A1セルの書式を「文字列」にしておいてくださいね。そうでないと010すら10に変わってしまい入力できないはずですから。

motty7777
質問者

お礼

やってみます!

motty7777
質問者

補足

手順通りにやってみましたが、010と入力しても010と表示されるだけです…。ちなみにK11セルですので$K$11としていますが間違いないでしょうか?ほかに原因はありますか?

全文を見る
すると、全ての回答が全文表示されます。
noname#99913
noname#99913
回答No.3

入力の手間を省きたいのなら、入力規則のリストを使えばいいでしょう。 (1)入力したい範囲を選択 (2)データ (3)入力規則 (4)設定タブ (5)入力値の種類をリストに (6)元の値に「田中,鈴木,岡田」と入力  または、どこかのセルに入力しておき、その範囲を指定する。 (7)OK (8)入力セルの右に▼が表示されるので、それをクリックし、表示されたリストから名前を選ぶ。

motty7777
質問者

お礼

マウスを使いたくないので、決まった数字入力でそれに対応する文字列がでてくればいいなーと思って質問しました。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! VLOOKUP関数がいいのではないでしょうか? ただし、データになる表はあらかじめ作成しておく必要があります。 そして、010のような表示が希望であれば、セルの書式設定のユーザー定義から0:00を選び、000としてやる必要があります。 そうした上で・・・ B1セル=IF(A1="","",VLOOKUP(A1,E:F,2,0)) としてみてはどうでしょうか? 以上参考になれば幸いです。m(__)m

motty7777
質問者

お礼

早速の返事ありがとうございます!やってみます!

全文を見る
すると、全ての回答が全文表示されます。
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

A1に010と入力して他のセルに田中と出すのならVLOOKUP関数等で簡単に出来ます。 しかし、A1に入力しA1に出すのは関数では無理です。なぜならA1にどんな関数を入れておいても、010と入力された時点で式は消えてしまいますから。 VBAでチェンジイベントを利用するしかないですね。

motty7777
質問者

お礼

今回はmerlionXXさんの方法でやります! またの機会にVBA挑戦します! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel 置換? VBA

    先ほども質問したんですが、 A1に010と入力すると田中、020入力で鈴木と出来るように、 ------------------------------------------------------ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Select Case Target.Value Case "010": myStr = "田中" Case "020": myStr = "鈴木" Case "030": myStr = "岡田" Case "": myStr = "" Case Else: myStr = "非該当" End Select Application.EnableEvents = False On Error GoTo line Target.Value = myStr line: Application.EnableEvents = True End Sub ---------------------------------------------------- を教えていただきました! が、A2でも同じようなことを行いたいのです! VBAの知識が乏しいのでコピペでいろいろやってみたのですが、エラーで出来ませんでした…。 A1 A2 ・ ・ ・ と同じように入力できるようにするにはどのようにすればよいのでしょうか?もう一度教えて下さい。よろしくお願いします。

  • エクセル

    エクセルでのカウント方法の関数がわかりません。 A列 B列 田中 福岡 田中 福岡 田中 福岡 鈴木 佐賀 鈴木 佐賀 田中 長崎 田中 長崎 このようなデータで、A列の条件でB列の種類を返すにはどのような方法がありますでしょうか? 田中2 鈴木1 わかりにくくて申しわけないですけど、よろしくお願い致します。

  • EXCELで検索条件に一致した合計をするには?

    下の表はA1からC6までが元データで、F2,F3,F4に関数を入力 したいのですが、どういう関数を入力すればよいでしょうか? F2は70、F3は8、F4は2という答えになるのはわかるのですが 関数を入力して自動計算させたいと思っています。 誰か教えていただけますでしょうか?   A     B    C    D    E    F 1     上半期  下半期          年間 2 鈴木君   10   20       鈴木君 3 田中君   5    3       田中君 4 鈴木君   10   10       山本君 5 鈴木君   10   10 6 山本君   1    1

  • Excel(2010)で氏名の頻度の求め方

    Excel(2010)で、A列に縦に 山田 鈴木 田中 山田 鈴木 山田 というように氏名の並べてある表があるとします。この表で氏名の頻度が 山田 3 鈴木 2 田中 1 というように表示できる関数または方法があるでしょうか。 この表のように項目が少なければ 山田 鈴木 田中 というセルを作っておいて、VLOOKUP関数で求められますが、実際には約500行ありその中の氏名をすべて手作業で入力するのは大変ですので、重複なくすべての氏名を抜き出すのは実際的ではありません。 以上よろしくお願いします。

  • エクセルのCOUNTIF関数について質問です。

    エクセルのCOUNTIF関数について質問です。 例えば下記のように入力されているとき、「田中」が含まれるセルを数えるとき、Sheet2のB1の列には「=COUNTIF(Sheet1!A:A,"*田中*")」と入力すればいいと思いますが、「"*田中*"」の部分を「A1」、上田の場合は「A2」とする場合はどうすれば良いでしょうか? <Sheet1>   A 1 上田夫妻 2 田中兄弟 3 田中太郎 4 田中さん 5 鈴木姉妹 <Sheet2>   A   B 1 田中 2 上田 3 鈴木

  • EXCELで検索条件に一致した合計をするには?

    下の表はA1からC6までが元データで、F2,F3,F4に各個人の年間 合計が表示されるよう関数を入力したいのですが、どういう関数を 入力すればよいでしょうか? F2は70、F3は8、F4は2という答えになるのはわかるのですが 関数を入力して自動計算させたいと思っています。 誰か教えていただけますでしょうか?   A     B    C    D    E    F 1     上半期  下半期          年間 2 鈴木君   10   20       鈴木君 3 田中君   5    3       田中君 4 鈴木君   10   10       山本君 5 鈴木君   10   10 6 山本君   1    1

  • エクセル VBAについて

    エクセル初心者ながら質問させていただきます。 A1に田中 A2に山崎 A3に鈴木 があったとします。 B1からB3まではセルの結合を行っています。 B1に=A1&CHAR(10)&A2&CHAR(10)&A3というCHAR関数をいれてB1の表示をみてみると 田中 山崎 鈴木 と表示されました。 ここで質問なのですが、これでA2の山崎を消すとB1は 田中 鈴木 と、1行開いて表示されます。これをA2の山崎を消すとB1が 田中 鈴木 と、間を開かずに表示させたいのですが、何か良い方法はあるのでしょうか? 詳しい方いましたらよろしくお願いします。

  • エクセルでこのような事ができますか?

    エクセルでマクロとか使わずに簡単に以下の作業ができる方法がありますか?      A      B 1   田中 2   山本 3   中村 4   岡田 5   鈴木      ↓   A列にずっと1000人ぐらいの名前がある。   このシートをもとに下のような1から6の番号をB列につけたシートを   作りたいのですが・・・      A      B 1   田中     1 2   田中     2 3   田中     3 4   田中     4 5   田中     5 6   田中     6 7   山本     1 8   山本     2 9   山本     3 10  山本     4 11  山本     5 12  山本     6 13  中村     1 14  中村     2      ↓    6000行まで入ることになります。

  • EXCELでカウント

    EXCELでカウント EXCELでこのようにデータがあるとして↓ 田中 田中 鈴木 三島 鈴木 田中 田中は3個ある、鈴木は2個ある、三島は1個ある のようにカウントできる関数 または カウントする方法 を教えて下さい。

  • エクセルの関数をどう使えばいいか教えてください

    エクセルで個人データファイルを作っています。 関数で下記の様な計算ができるのか解る方教えてください。 鈴木 岡田 佐藤 岡田 鈴木 鈴木 この人数を重複しないように計算したいのですが、CAUNTAを使うと 「6」となるが、「3」になるように関数を使いたいと思っています。

専門家に質問してみよう