[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『自動で色番号を出るように登録したい』(りさ)
他のシート等で 事前にデーター登録をしておけば可能ですか?
他のシートに参照表を作成しておき、VLOOKUP等で呼び出ししては いかがでしょうか? 色番号というのがどのようなものかわかりませんが、具体例を示していただけると もう少し詳細にアドバイスできるかと思います。
(Yujin)
参照表を作成しておいた場合でも
品番を入力して 計算式を入れてあげないと カラーは出てきませんよね?
入力するシートと、品番と色の定義のあるシートのそれぞれのセル構成を 詳細に説明してはどうでしょうか。 その方が具体的な回答が得られると思います。
また、カラーといっているのは色名だけで実際の色を表示したいわけではないです よね?そのあたりも、一言説明があると良いかと思います。
文字だけであれば式でできると思いますし、マクロでも対応できます。 色の最大色が決まっているのであれば、その分だけ式を入れておけば、空白は 空白として出るだけなので、VLOOKUP だけでいけるとは思いますが。 (Mook)
定義のシートに は 品番とカラーと定価を記入しておく。
A1のセルには 品番 A2のセルに定価 B1 C1のセル等にカラーが出てくるようにしたいです。
品番を入力した際に 展開している色や定価が自動的にエクセルに出てくれば いちいちカラー等を手入力する手間がはぶけていいな と思いました。
なので B2のセルには 数字が入ります。
品番 カラー
○○○○ CA BK RE MUS
¥3500 1 2 5 6
こういう形にしたいです。
説明不足ですいません。。。。
何か いい方法を教えて下さい。
(1)品番と色を定義した範囲を選択して、名前(仮に「色表」)をつけます。 (2)品番を入力する欄がA2、色表示をする範囲がB2からZ2 だとすると B2=IF($A2="","",VLOOKUP($A2,色表,COLUMN(B2),FALSE)) として、C2からZ2までコピー。 でどうでしょうか。 名前で定義する範囲の列数、式の列数より大きくしておかないと参照エラーになる ので十分大きな範囲(25列?)で定義してください。 (Mook)
イマイチわかってない部分もあるのでちょっとまとめたいと思います。 まず、参照表のシートですが、以下のような作りでいいですか?
[参照表]シート A B C D E F G 1 品番 定価 色1 色2 色3 色4 2 AAAAA 3500 CA BK RE MUS 3 BBBBB 4000 MUS BL 4 CCCCC 5000 CA BK MUS 5
次にデータを入力・表示するシートですが、以下のようでいいですか?
[データ表示]シート A B C D E F G 1 品番 色1 色2 色3 色4 2 AAAAA CA BK RE MUS 3 \3500 4 5
で、求めたいのはデータ表示シートのA2セルに品番を入力すればA3,B2〜E2に 結果が表示されるようになればいいですか? また、B3〜E3セルには数字が入るそうですが、これは手入力?それとも参照する? 私がよく理解できていないだけですので、違っていれば指摘してください。
(Yujin)
B2=IF(OR(VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,ISNA(VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0))),"",VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0))
右方向にフィルコピー。
A3=IF(ISNA(VLOOKUP(A2,参照表!$A$2:$F$5,2,0)),"",VLOOKUP(A2,参照表!$A$2:$F$5,2,0))
一応エラー処理しています。 範囲はご自分の表に合わせて変更してください。 Mookさんご提案の名前の定義はオススメです。
(Yujin)
A3の式には絶対参照をかけていませんので・・。 A4セルにコピーすると =IF(ISNA(VLOOKUP(A3,参照表!$A$:$F$5,2,0)),"",VLOOKUP… ^^^^ という風に^^^の部分が変わっていると思います。
A3=IF(ISNA(VLOOKUP($A$2,参照表!$A$2:$F$5,2,0)),"",VLOOKUP($A$2,参照表!$A$2:$F$5,2,0)) ^^^^ ^^^^ 絶対参照をかけることでこの式はどこにコピーしてもA2セルの値を基に検索をかけに行きます。
この際ですから絶対参照と相対参照を覚えておかれるといいですよ。 http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040720.html
(Yujin)
A2は 参照表に記入している どの品番を入力しても きちんと反映してくれます。
ええと、同じことなんですが、 B2=IF(OR(VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,ISNA(VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0))),"",VLOOKUP($A$2,参照表!$A$2:$F$5,COLUMN(C1),0))
を
B2=IF(OR(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,ISNA(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0))),"",VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0))
としてからコピーしてみてください。 式の中の VLOOKUP($A$2,参… を VLOOKUP($A2,参… に変えています。 ^^^^^^ ^^^^^
例えば B1セルに「=A1」と入れて、B1セルをC2セルにコピーするとC2セルの式は「=B2」と なっていますよね。これは相対参照といいまして、「一つ左のセルを参照せよ」という意味 になっています。 また、列行の記号の前に「$」を入れることで絶対参照となります。 =A1を=$A1とすれば列が固定され、=A$1とすれば行が固定されます。=$A$1とすれば列行共に 固定され、どこにコピーしても参照範囲は変わりません。
(Yujin)
ただ もう1点教えていただきたいのですが
今 この数式を当て込んだエクセルを作りましたが
品番を入れてない場合 数式が入っているセルに #N/A が表示されたままになってしまいます。
これを見えないようにするには どうしたらいいですか?
何度もすいませんが 教えて下さい。
宜しくお願い致します。
=IF(品番セル="","",今の式)
衝突しました。。
IF($A2="","",今の式) として未入力の場合の処理を追加してはいかがでしょうか。
(Yujin)
すいません 何度も何度も・・・・
ええと(汗) そのままですよ。 =IF($A2="","",IF(OR(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,ISNA(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0))),"",VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)))
がんばってくださいね!
(Yujin)
ちょっと済みませんが。。。。 >OR(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,ISNA(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0))) こうなっていると、ISNA(・・・)の所の意味が無くなってしまいませんか? ISNAでTRUE になっても、その前の VLOOKUP(・・・)=0 が #N/A に成ってしまうので。。。
(HANA)
HANAさまご指摘ありがとうございます。
この場合に関してなんですけど、#N/Aが返ってくるのは検索値が無かった場合(当然ですが・・) に対してのISNAです。もうひとつのVLOOKUP(・・・)=0は検索値に対して色数が少なかったときの 見栄えのためだけに入れていたんです。
例えば、色1・色2はあるが色3・色4に何も無かった場合、色3・色4は0が返ってくるため、 それを良くしようとしたものです。
(Yujin)
そういった事で作ってあるのは分かっていますが、機能してませんよね? =OR(#N/A=0,ISNA(#N/A)) の結果は 「TRUE」ではなく「#N/A」なので。
そもそもこれが機能していたら、品番を入れていなくても #N/A なんて表示されないはず。
VLOOKUP関数の戻り値が 0だった時か、#N/A だった時に「""」を返そうと思って作成された式ですよね? ・・・と読んだのが違うのかな。。。?
(HANA)
HANAさま
おはようございます。 先ほど検証しました。ほんとですね。機能してませんでした。 よく考えないとダメですね・・(反省)
B2=IF(ISNA(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)),"",IF(VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)=0,"",VLOOKUP($A2,参照表!$A$2:$F$5,COLUMN(C1),0)))
というふうにネストしました。
(Yujin)
ありがとうございます。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.