• ベストアンサー

セルA1値によってセルB1の値が変わる

お世話になります。 たとえばA1に「本」と入れた場合B1に「1000」(金額や商品コードなど)、A2に「バッグ」と入れた場合B2に「800」と出るようにするにはどうすればいいでしょうか。(できれば同じシートのA1とB1ではなく、Sheet1のA1に入力した値によって、Sheet2のB1が変わるというの目標です。) あらかじめ別のシート(商品の種類が1000を超えるためシートを分けたほうがいい?)にAに入力する商品名とBに入るべき数字の対応表を作ろうと思っています。 それを活用してできるでしょうか? 質問のようにしてできたエクセルシートを活用して、販売ソフトに取り込みたいと考えています。

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

  • ベストアンサー
  • sytkn
  • ベストアンサー率43% (54/125)
回答No.3

ANo.1です。ANo.2さんの言うとおりですね。 検索先のセルも間違っていましたので、追記しておきました。 =IF(A1="","",VLOOKUP(A1,Sheet1!A1:B2,2,FALSE)) =IF(A1="","",VLOOKUP(A1,Sheet1!$A$1:$B$2,2,FALSE))

SNP
質問者

お礼

最初のご回答と同時によませていただいたので、こちらにお礼をつけさせていただきます。 ご丁寧な回答ありがとうございました。 関数の本もあれこれ読んでみましたが、真偽や値を返すなどの言葉が自分のやりたいことなのかどうかよくわからず、あれこれ試してみたのですがうまく行きませんでした。 組み合わせていくとさらに混乱してしまって。 思ったよりもすっきりした関数だったのだなぁと今思っています。 さっそく試してみたいと思います。 ありがとうございました。

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

VLOOKUP関数を利用して抽出する方法が一般的です。 別シートをsheet2でA列に商品名、B列以降に金額等情報とします。 抽出側シートのB1に=IF(COUNTIF(sheet1!$A:$A,$A1),VLOOKUP($A1,sheet2!$A:$n,列番号,FALSE),"")として、下方向にコピー nはリストの最右列番号、列番号はA列を1とした相対番号(仮にB列は2)を設定します。 因みにFALSE型にしていれば参照先リストの並び替えは不要です。

SNP
質問者

お礼

ありがとうございました。 前の方たちとはちょっと式ですね。 COUNTIFの関数についても勉強したいと思います。 実際活用するためには先が長いのですが、まずこのポイントを克服して次へ進みたいと思います。  ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

こんなの(ビジネスの常識関数)VLOOKUPで出来ますよ。 すぐ回答が出るタイプで出ていますが、この質問がどの程度の質問か知ってください。 毎日同じような関数利用は質問回答に出ているものです。もっと 代表的な関数を前もって勉強のこと。 ーー Sheet1のA列にコード、B列に商品名、C列に(これは質問に書いてないが考慮不足)価格の表を1000品目?分作る。 コード順とか順番は特に要求しない。 回答者の中にも、順序になっている必要がある、と書く人が時どき見えるが、VLOOKUP関数は2種類あり、FALSE型は順序を要求しない。 ーー Sheet2のA列にコードを入れるとして、B列に該当商品名を出すには =IF(A1="","",VLOOKUP(A1,Sheet1!$A$1:$C$1000,2,FALSE)) C列の価格は =IF(A1="","",VLOOKUP(A1,Sheet1!$A$1:$C$1000,3,FALSE)) VLOOKUPを使う FALSE型を使う。 第2引数は$をける 他シート参照はSheet1!・・・のように(シート名)+! を前につけて指し示す。

SNP
質問者

お礼

ご丁寧にありがとうございました。 昇順を要求しないとの回答を頂きましたので、是非参考にさせて頂きます。 コードについて記載しなかったのは、実際には商品名から金額ではなくコードを呼び出したかったからです。 そこまで考慮してくださってありがとうございました。

回答No.2

A1を参照してB1が変わるだけなら、VLOOKUP関数を使えばできます。 ただし、参照するリストは昇順に並べ替えておく必要があります。 今回のケースでは検索の型はFALSE を指定したほうがいいでしょうね。

SNP
質問者

お礼

さっそくのお返事ありがとうございました。 とてもわかりやすかったです。 早速実行してみたいと思います。 実際の商品名は本やバッグという単純なものでないため、 昇順というのに多少不安があるのですが、まずやってみたいと思います。 ありがとうございました。

  • sytkn
  • ベストアンサー率43% (54/125)
回答No.1

まず、Sheet1に 商品名 コード(金額)の基準になる表を作成しておきます。   A    B 1 本   1000 2 バッグ 800 Sheet2のB1に =IF(A1="","",VLOOKUP(A1,Sheet1!A2:B3,2)) A1に本を入力すると、1000 A1にバッグを入力すると、800 と表示が変わります。 注意 Sheet1の探させたい値(ここでは本、バッグ)が昇順に並んでないとうまく探せない場合があります。 Sheet2の探させたい値(ここではA1に本)がA2、A3、A4などと下にコピーして使用する場合はこちらを使ってコピーしてください。 =IF(A1="","",VLOOKUP(A1,Sheet1!$A$2:$B$3,2)) Sheet1の範囲指定を固定にしてあります

関連するQ&A