• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで顧客毎に単価が違う場合の入力)

エクセルで顧客毎の単価を入力する方法について

このQ&Aのポイント
  • エクセルで顧客ごとに単価が異なる場合、シート1に顧客ごとの商品名や単価を書いた表を作成し、シート2で伝票などを作成する際に顧客名で商品名を入力すると、自動的に単価が入力されます。
  • VLOOKUP関数を使うことで、単価が違う場合でも顧客ごとの単価を簡単に入力できます。
  • エクセルが得意ではない方におすすめの方法として、図解入りの説明がある教材を活用することをおすすめします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

No.1です! 他の方々からより良い回答が出ていますが・・・ とりあえず前回のSheet1の行・列を入れ替えた方法での数式になります。 前回の数式と今回の数式の違いを見比べてみてください。 データは↓の画像のようにしています。(今回はSheet1の100行目まで・商品はB~G列まであるとしています) Sheet2のB4セルに =IF(OR($A$1="",A4=""),"",INDEX(Sheet1!$B$2:$G$100,MATCH($A$1,Sheet1!$A$2:$A$100,0),MATCH(A4,Sheet1!$B$1:$G$1,0))) という数式を入れオートフィルで下へコピーしています。 行・列を入れ替えた場合の違いは判っていただけたでしょうか?m(__)m

piroli_007
質問者

お礼

何度もありがとうございます。 他の人も色々と教えて下さいましたが、最初に画像付きで 分かりやすく説明して下さったので、ベストアンサーに させていただきます。 本当に 有り難う御座いました。

その他の回答 (5)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.5

http://www.asahi-net.or.jp/~zn3y-ngi/YNxv982.html#xv0720 名簿から検索して別のシートに貼り付けるには? http://okwave.jp/qa/q4005675.html ユーザフォームを使ってのデータの書き換え(エクセル) どこまで参考になるかは見て判断してください。 商品と顧客の提示単価は2次元(縦軸横軸)管理でない方がいいです。 顧客や商品が増減したときにどうメンテナンスするのか、 そういうことまで考えた設計でない。 また、 商品は4,5件というわけではないので、 単価データは外部のテキストファイルなどとインポート、エクスポートできるのが良い。 「顧客提示単価」列と「商品」列と持たせて 複合条件で行検索するのがいいでしょう。

piroli_007
質問者

お礼

ありがとうございます

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

商品群と顧客を2次元表にまとめられる(その作成・更新も含め煩わしさに耐えられるなら)なら MATCH関数で商品列で何処の行(y)にあるか商品を見つけ、顧客名が在る第1行目において、顧客名をMATCH関数でどの列にあるか(x)を見つけ、INDEX関数で=INDEX(表のセル範囲,y,x)で交叉するセルのデータ(=単価)がとらえられる。 これは教科書例題的な回答である。 ーー しかしエクセルでは、運用(単価の変動の登録など)で無理が出てくると思う。アクセスをはじめデータベースを使うべき課題だと思う。 エクセルの単価シートを作って参照するなら、キーに誤って手を触れて誤って1文字変えてしまったなどの防止策を取らないと 危なっかしい。 ーー もうひとつ、購買数量条件(A社でも1000個以上買えば1個200円に値引など)などが加わると関数ではお手上げでしょう。

piroli_007
質問者

お礼

ありがとうございます。

  • rukuku
  • ベストアンサー率42% (401/933)
回答No.3

こんばんは 顧客Noを使う方法です。 1から始まる通しナンバーです。 実際には、Vlookup関数の中では列番号で指定しているだけです。顧客Noとは連動していません。 顧客Noに欠番や重複があると社名と参照している列が一致しなくなりますので注意してください。 Sheet1のデータは添付の図のようになっています。 Sheet2の B2に =HLOOKUP(B1,Sheet1!B1:F2,2,FALSE) が入っています。B1に顧客Noを入力すると顧客名が表示されます。 B5に =VLOOKUP(A5,Sheet1!$A$3:$F$8,$B$1+1,FALSE) が入っています。以下、オートフィルしてください。

piroli_007
質問者

お礼

どうもありがとうございます

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

例えば表1に顧客名と価格の種類の分類、表2に商品名と価格の種類の一覧、が入力してある場合、添付ファイルのC10セルに以下の数式を入力すると、顧客名と商品名に該当する単価を表示することができます。 =VLOOKUP(B10,$D$2:$G$6,MATCH(VLOOKUP(A10,$A$2:$B$5,2,0),$D$1:$G$1,0),0)

piroli_007
質問者

お礼

どうもありがとうございます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 ↓の画像で説明します。 Sheet1に顧客別の価格の表を作成しておきます。 一つ一つ単価を入力するのが大変であれば、掛け率でもOKかと思います。しかし掛け率の場合の数式は少し変わってきます。 Sheet2のB4セルに =IF(OR($A$1="",A4=""),"",INDEX(Sheet1!$B$2:$F$100,MATCH(A4,Sheet1!$A$2:$A$100,0),MATCH($A$1,Sheet1!$B$1:$F$1,0))) という数式を入れオートフィルで下へコピーすると 画像のような感じになります。 数式はSheet1の100行目まで・F列までの数式にしていますので範囲指定の領域は適当にアレンジしてみてください。 あくまで一案です。 参考になれば良いのですが・・・m(__)m

piroli_007
質問者

お礼

そうなんです。こういう風にしたかったんです。 数式のほうは難しくて理解できていませんが・・・・。 ところでですね、例えの図なんですが、シート1で商品と顧客名を逆(列と行)に した場合、数式はどうなるのでしょうか? できれば教えていただきたいのですが。 よろしくお願いします。

関連するQ&A