エクセルについての質問です。

入力規則でリストを設定していますが
それぞれに、それぞれIDのようなものを設定して

たとえばB列で 1 が入力されればAAAに自動的に変換され
2 が入力された時はBBBというようなことをする方法を教えてください。

回答の条件
  • URL必須
  • 1人5回まで
  • 登録:2006/07/24 10:58:23
  • 終了:2006/07/25 22:17:26

ベストアンサー

id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412006/07/24 11:51:37

ポイント35pt

特定のIDに対応した内容を自動的に表示させると言う点では、

先ほどキャンセルされた質問に回答されていたkatsubeさんの方法でほぼできると思います。

それでもキャンセルされたということは何か他に必要な要素があるのかと思うのですが、

今回の質問文から特定できなかった部分があるので、以下推測の上回答します。


一般的に入力規則をリストで設定しているということは、

入力規則が設定されているセルが「入力用」のセルになり、

自動的に表示されるのが別の対応セルになると思います。

なので、「B列に1と入力されれば」と言う書き方から推測すると、

A列やC列へ「AAAに自動的に」表示されれば良いととることができます。

その場合はkatsubeさんが書かれていたように

B列に入力規則を設定、A列に表示するとして、


1.A1=if(B1=1, 'AAA', if(B1=2, 'BBB', ''))

とIF文でネストした関数を記入し、データ範囲までフィルコピーする。

(対応種類が7種類を越える場合は不可)


2.別シートに↓のようなリストを作成し

ID テキスト
1 AAA
2 BBB
3 CCC

リスト範囲を選択、ツルーバーから「挿入」→「名前」→「定義」で名前ボックスに「データ」などと記入して追加。

(これでリスト範囲に名前がつきます)

入力シートに戻り、

A1=VLOOKUP(B1,データ,2,0)

と記入してデータ範囲までフィルコピーすれば自動表示されます。

ただし、B列に対応する値がない場合エラー値が出ますので、

エラー値を表示したくない場合は、

A1=IF(ISERROR(VLOOKUP(B1,データ,2,0)),"",VLOOKUP(B1,データ,2,0))

とすれば、対応する値がない場合空白が表示されます。


上記で自動表示はできるかと思います。


ただ、気になっているのは「変換」という言葉で、

もし、B1に入力した値に対して、B1にAAAをかえしたいということでしたら、

これは関数レベルでは不可能です。

VBAを組むことになると思いますが、それを具体的に例示するには、情報が足りません。


入力規則が入力されるセル番地、

入力規則のリスト内容(もしくは記載セル番地)

変換のタイミング(入力後随時か、後に一括変換か、もしくは具体的な利用場面の説明。ex.型番を入力したら、品名で表示できるようにしたい)

などが提示されているとイメージできるのですが…


以上ご参考まで。

http://www.moug.net/

その他の回答(1件)

id:gong1971 No.1

gong1971回答回数443ベストアンサー獲得回数682006/07/24 11:44:09

ポイント35pt

入力規則で入力したID(1,2...)は保持しておき、

隣のセルに対応する値(AAA,BBB...)を表示するのであれば

VLOOKUP関数を使用します。(こちが一般的な方法です。)


そうではなく、B列にIDを入力した瞬間に対応した値に変換するので

あればVBAを使用する事になります。該当シートのWorksheet_Change

イベントを利用します。下記にコードを示します。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 2 Then
        Select Case Target.Cells(1, 1)
            Case 1
                Target.Cells(1, 1) = "AAA"
            Case 2
                Target.Cells(1, 1) = "BBB"
        End Select
    End If

End Sub

なお、入力規則の設定を行う際に、入力規則のダイアログで

[エラーメッセージ]タブの[不正なデータが入力されたら...]の

チェックを外しておいてください。

http://hp.vector.co.jp/authors/VA014071/tips/valid_1.html

id:e23jp

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

下の方法で実現できました。

説明不足の部分があり申し訳御座いませんでした。

2006/07/25 22:16:57
id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412006/07/24 11:51:37ここでベストアンサー

ポイント35pt

特定のIDに対応した内容を自動的に表示させると言う点では、

先ほどキャンセルされた質問に回答されていたkatsubeさんの方法でほぼできると思います。

それでもキャンセルされたということは何か他に必要な要素があるのかと思うのですが、

今回の質問文から特定できなかった部分があるので、以下推測の上回答します。


一般的に入力規則をリストで設定しているということは、

入力規則が設定されているセルが「入力用」のセルになり、

自動的に表示されるのが別の対応セルになると思います。

なので、「B列に1と入力されれば」と言う書き方から推測すると、

A列やC列へ「AAAに自動的に」表示されれば良いととることができます。

その場合はkatsubeさんが書かれていたように

B列に入力規則を設定、A列に表示するとして、


1.A1=if(B1=1, 'AAA', if(B1=2, 'BBB', ''))

とIF文でネストした関数を記入し、データ範囲までフィルコピーする。

(対応種類が7種類を越える場合は不可)


2.別シートに↓のようなリストを作成し

ID テキスト
1 AAA
2 BBB
3 CCC

リスト範囲を選択、ツルーバーから「挿入」→「名前」→「定義」で名前ボックスに「データ」などと記入して追加。

(これでリスト範囲に名前がつきます)

入力シートに戻り、

A1=VLOOKUP(B1,データ,2,0)

と記入してデータ範囲までフィルコピーすれば自動表示されます。

ただし、B列に対応する値がない場合エラー値が出ますので、

エラー値を表示したくない場合は、

A1=IF(ISERROR(VLOOKUP(B1,データ,2,0)),"",VLOOKUP(B1,データ,2,0))

とすれば、対応する値がない場合空白が表示されます。


上記で自動表示はできるかと思います。


ただ、気になっているのは「変換」という言葉で、

もし、B1に入力した値に対して、B1にAAAをかえしたいということでしたら、

これは関数レベルでは不可能です。

VBAを組むことになると思いますが、それを具体的に例示するには、情報が足りません。


入力規則が入力されるセル番地、

入力規則のリスト内容(もしくは記載セル番地)

変換のタイミング(入力後随時か、後に一括変換か、もしくは具体的な利用場面の説明。ex.型番を入力したら、品名で表示できるようにしたい)

などが提示されているとイメージできるのですが…


以上ご参考まで。

http://www.moug.net/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません