• ベストアンサー

エクセルのデータベース関数又はマクロを教えて

エクセル関数、マクロ勉強中です。シート1の各列には顧客のランク値があります。その下各行にはランクに応じた商品群の価格を記入してあります。シート2、3、・・・は注文伝票で、それぞれ顧客ランク欄を設けています。ランク欄に顧客のランクを入力したとき、ランクに応じた商品群の価格を単価と表示したセル以下の行に表示したいです。データベース関数の組み合わせではどうすれば良いのか、又はマクロ設定で出来るのか、又はVBA記述で出来るのかVLOOKUP関数、オートフィルター等試してみましたが満足できる結果が出ませんでした。教えてください。

  • whymm
  • お礼率33% (3/9)

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

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

文章で説明されていますが、質問内容が把握できません(おそらく関数で対応するのが最適な方法だと思われます)。 たとえば、添付画像のセル配置なら、B10セルに以下の数式を入力して下方向にオートフィルします。 =INDEX($B$2:$H$5,MATCH($A10,$A$2:$A$5,0),MATCH($C$8,$B$1:$H$1,0)) 上記の数式は同じシート内で参照していますが、実際のシート名に合わせて参照するセルを変更してください。 ご希望の操作が、上記の回答と異なる場合は、添付画像のように、それぞれのシートのレイアウト(セル番地)などを具体的に提示して、補足説明してください。

whymm
質問者

お礼

素早い対応と、丁重な説明有り難うございました。大変参考になりました。 これがしたかったのです。ようやく難題が一つ解決しました。

その他の回答 (3)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.4

失礼しました、 掲載のアドレスですが 場合により、スマホでは 数式を、見れないようです PCでの閲覧をお願いします

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.2

アメリカでは 魚を与えるな、取り方を伝えよ と、言う旨の諺があるとか… No.1さんの全く言う通りなのですが 事、 配列数式やデータベース関数、 と、なると 難しくて、そうもいってられない かな とも、思います。 データベース関数は 難しいですよね? ちょっと作ってみました http://1drv.ms/1Arc7cy 開いたら編集ボタンを押してください そうすれば 式が見れるようになると思います 但し、呉々も書き換えないでくださいね 所で VLOOKUPが、駄目だったとか 何件かに渡り 全てを表したいのでしょうか? データベース関数では どうやら一件だけのヒットでないと エラーになるようです お示ししたシートでも 多数同一なものがあるランクを表示させようとすると データベースの方はエラーになります 一方で 配列数式の方は 色を変えているセルの分だけ 何件一致していようとも 表示します 例外処理も入れたので少々長くなってますが ご要望なら解説致します 如何でしょうか?

  • tsukaps
  • ベストアンサー率33% (40/121)
回答No.1

VBAでそういうことはできます。 セルを検索してセルに入れていけば良いだけなので、 日頃からプログラム言語を使っている人からすれば、簡単なのですが、 関数一個でできるようなものではないので、 VBAの入門書を一冊買って読破してみることをお勧めします。

関連するQ&A

  • エクセルで顧客毎に単価が違う場合の入力

    質問させていただきます。 例えば、50程の顧客が居るとして商品によって単価が違ったりする場合、 シート1に顧客ごとの商品名や単価を書いた表を作ったとします。 で、シート2で伝票などを作るとしたとして、その顧客名での商品名を 入力すると、その単価が自動的に入力する。というようないい方法は あるでしょうか?VLOOKUPを使ったりするのかなぁ、などと思ったり するのですが、単価が違ったりするという部分でよく分からなくて。 説明がうまく出来ていないかもしれませんが、よろしくお願いします。 エクセルは得意ではないので、図解入りで似たような説明がしてあるような ところがあれば教えてもらえると有り難いです。

  • Excelの関数を教えてください。

    二つのシートのデータを検証する関数を教えてください。 シート1とシート2に同じような形式で、数値と単価が入力されています。 シート1の数値と同じものをシート2から探し、その二つの単価が同じかどうか検証するにはどうすれば良いでしょうか? VLOOKUPやSUMIF程度なら使えますが、関数はあまり詳しくありません。詳しく教えて頂けると有難いです。 宜しくお願い致します。

  • エクセルでデータベースの検索と抽出(?)

    エクセル2007を使用しています。 まずエクセルで作られたデータベースがあります。データベースには、管理番号、顧客名、商品の管理番号、商品名、価格が入っています。 このデータベースとは別に、検索(抽出)用のエクセルを用意しています。 そこで、管理番号を入れたら、顧客名、商品名、価格のみが1行(横)に表示されるようにしたいです。 クエリを利用してやると一つずつ顧客名、商品名、価格を選んで…という風に時間がかかります。 例えば、管理番号の列(縦)に番号を入れて、ボタンを押すとか、実行(F9)すれば、管理番号を入れたすべての行に、データベースから検索した顧客名、商品名、価格が入力されるようにしたいのです。(管理番号の重複はありません) クエリで一個ずつ選んでいくのをマクロ登録するしかないのでしょうか?

  • Excelの関数で、このようなことができたら教えてください。

    ExcelのVLOOKUP関数を知っているので、使っていたのですが、今回はうまく答えを導くことができません。 VLOOKUPで説明すると、「範囲」にあたる表の一番右に「検索値」があるのです。 この場合、VLOOKUP関数だと答えを出せませんが、ほかにどのような関数がありますか? 質問の内容がわからなかったら聞いてください。 よろしくお願いします。 <念のため補足しておきます> 顧客名/住所/TEL/顧客コード の順に並んでいる表(データベース)を元に、 別の場所に「顧客コード」をキーに、顧客名・住所・TELを参照したいということです。 もとのデータベースのフィールドの並びを変更することはできません。 以上

  • エクセルで各品毎の合計を出すには

    エクセルで納品書を作ったのですが、 何軒もある顧客の納品書の中から、共通した商品の合計価格を 自動で計算させるにはどのようにすればいいでしょうか? 例えば、A B C D という名前の顧客があって、あ い う え お という商品があり、 A~D の (あ)なら(あ) という商品の売り上げ数と売上合計金額を出したい。という感じです。 (あ~お まで、全部出るようにしたいです) 商品の単価は顧客毎に、少し違っていたりします。 vlookup関数を使うのかなぁ、とか思ったりするのですが、納品書は何枚にもなっているし、 データベース?(よく分かってません)みたいなのを使うのかな、とか。 分かりやすく教えてもらえるとありがたいです。 エクセル2010です。 エクセル2003の場合も教えてもらえると、なおありがたいです。 書き足らないところがあれば言って下さい。 よろしくお願いいたします。

  • 〔VBA・マクロ〕EXCELからACCESSデータをひっぱるには?

    当方のレベルはアクセス初級者(基本的な操作)、 エクセルはごく簡単なVBAをいじる中級者です。 アクセスにて顧客マスター、商品マスターを作成しています。 エクセルで納品書を作成しています。 現状では外部データの取り込みをつかって エクセルシートに顧客データ(シート1)と商品データ(シート2)を 取り込んだ後に、納品書(シート3)でシート1、2に VLOOKUP関数をかけて、納入先と商品情報を 伝票におとしこんでいます。 こんなまどろっこしいことをせずに、 エクセルからアクセスのテーブルへ直接データを取り込む方法は ないものでしょうか? どなたかよろしくお願いいたします。

  • エクセル関数若しくはマクロについて

    エクセルで A1に数字を打ち込み1なら10 2なら14・・・ といったように変換してくれるようにしたいのですが、 1と打った下のセルを10にするならVLOOKUPを使って出来ると 調べたのですが、 1と打ったセルの所を10と表示させるようにするには どのような関数を使うべきなのでしょうか? もしくはマクロを組まないの出来ないなのでしょうか?

  • Excelの関数またはマクロを教えて下さい。

    Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。

  • エクセルのデータベースで参照・貼り付け

    エクセル2003で、部品在庫のデータベースを作成してあります。 シート1"18年部品在庫" [コード][部品名称][単価][数量]... シート2は"19年部品在庫"ですが、ほぼ白紙の状態。 [コード]を手入力すると、昨年のデータベースを参照し[部品名称][単価][数量]を貼り付け。 単価や、数量に変化がある場合、19年度のシートの単価や、数量だけを修正したいと思います。 ※できるだけマクロではなくて、関数で行いたいと思います。 よろしくお願いいたします。

  • エクセルのマクロと関数について

    お世話になります。 1)マクロの方法で以下のようにしたいのですが可能でしょうか? 1行目にオートフィルタがかかっていればAAの処理をし、もしオートフィルタがかかっていないのであればBBの処理をしなさい。 というようなマクロです。if~then~else をつかってすると思うのですが、どうもうまくいきません。 2)関数もしくは式を使って以下のようにしたいのですが可能でしょうか?(ほかに方法があるのであれば関数、式にこだわりません) エクセルのデータベース(A1:E100のデータとし、A1:E1は項目が入っており、A1:E1にオートフィルタをかける)からオートフィルタをかけて項目を絞るのですが、出てきた結果の1番上、つまりA2:E2にあるB2とD2の結果を別のシートにある結果欄それぞれ2箇所にコピーする。多分別シートにある結果欄に何らかの関数とか式を入れればいいのかなと思いますが・・・ ちなみに上記2つの質問は関連性はありません。 わかりにくい質問で申し訳ありませんが、必要ならば補足いたします。 かなり困ってますのでよろしくお願いします。

専門家に質問してみよう