• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL データベースより別シートに抽出)

Excelデータベースから別シートに抽出する方法とは?

このQ&Aのポイント
  • Sheet1に商品の受注状況をリストにしています。これをデータベースとして、商品の出荷指示書を作りたいです。
  • 出荷指示書を作るためには、オーダーNoを入力すると顧客名が表示され、商品コードを入れると注文数が表示されるようにしたいです。
  • 注文していない商品の場合は、注文数欄に「0」または「×」が表示されればいいです。

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

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.1

こんにちは~ 質問に不明な点があります。 > A7に商品Aのコードを入れると、 > この顧客の商品Aに対する注文数がB8に表示されるようにしたい 「商品Aのコード」というのは、Sheet1のどれと対応しているのですか? G列からJ列の 「商品**の注文数」というのが、商品コードになっていればカンタンにできると思います。 【 前提条件 】 ・Sheet1の A列に同じオーダーNo.は存在しない。 ・Sheet1の 1行目は見出しで、G1からJ1には商品コードが(商品コードだけが)入力されている。 ・Sheet2の A1にオーダーNo.を入力。 ・Sheet2の A7に商品コードを入力。 Sheet2の B8に =IF($A$1="","",INDEX(Sheet1!G:J,MATCH($A$1,Sheet1!A:A,0),MATCH(A7,Sheet1!$G$1:$J$1,0))) > もしその顧客が商品Aを注文していなければ、 > B8に「0」または「×」が表示されると尚良い 注文していなければ、Sheet1の注文数の列には何も入力されていないのなら、上の数式で 「0」 と表示されます。

iiwa
質問者

補足

ありがとうございました。 お蔭様でうまく出来ました。 が、ひとつ補足がございます。 出荷指示を出した後、データベースの該当箇所(注文数)のセルに色づけ又はフォントの色を変えると言う事は出来ますか? いまは、出荷指示書は使い廻しの予定で、プリントアウトしたら次の入力という感じです。 出荷後、データベースを上記のようにしようとすれば、指示書を1件ごと保存する必要があるかと思いますが。。。 よろしくお願い致します。

その他の回答 (1)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

No.1です。 > 出荷指示を出した後、 > データベースの該当箇所(注文数)のセルに色づけ > 又はフォントの色を変えると言う事は出来ますか? 一般機能ではムリです。 VBAなら可能ですが、それでもよろしいですか? やり方はいろいろあると思いますが、たとえばこんな感じです。 <前提条件> ・「受注状況リスト」のシート名は Sheet1 ・「出荷指示書」のシート名は Sheet2 ・Sheet1は1行目が見出し、実際のデータは2行目から始まっていること メニューの「ツール」-「マクロ」-「Visual Basic Editor」 または、ALT+F11キーで VBEを起動 メニュー「挿入」-「標準モジュール」 画面の右に表示されたコードウィンドウに↓をコピーして貼り付けてください。 '-------------------------------------------------------- Sub 出荷指示書印刷()   Dim ret As Boolean   Dim myRowValue As String, myColValue As String   Dim myRowRange As Range, myColRange As Range   With Worksheets("Sheet2")     .Activate     If Not IsNumeric(.Range("B8")) Then       MsgBox "データが入力されているか確認してください。"       Exit Sub     Else       myRowValue = .Range("A1").Value       myColValue = .Range("A7").Value     End If   End With   With Worksheets("Sheet1")     Set myColRange = .Range("G1:J1").Find(myColValue)     Set myRowRange = .Range("A:A").Find(myRowValue)   End With   If myColRange Is Nothing Or myRowRange Is Nothing Then     MsgBox "データが見つかりません。入力データを確認してください。"   Else     ret = Application.Dialogs(xlDialogPrint).Show     If ret = False Then       MsgBox "印刷を中止します。"     Else       myColRange.Offset(myRowRange.Row - 1).Interior.ColorIndex = 24     End If   End If   Set myColRange = Nothing   Set myRowRange = Nothing End Sub '-------------------------------------------------------- 右上の閉じるボタン(×)をクリックして、VBEを終了。 メニュー「ツール」-「マクロ」-「マクロ」 「出荷指示書印刷」を実行 または、 メニュー「表示」-「ツールバー」-「Visual Basic」 表示された "Visual Basic" ツールバーから「マクロの実行」ボタンをクリックして、「出荷指示書印刷」を実行 同じ画面で「編集」をクリックすれば、VBEが起動してコードの修正ができます。 塗りつぶす色を変更したい場合は、 myColRange.Offset(myRowRange.Row - 1).Interior.ColorIndex = 24 最後の24が色番号ですので、参考URLを見て、お好みの色番号に変更してください。 色見本の右にあるいちばん上の数字が色番号です。 シート上にコマンドボタンを配置し、それをクリックして上記のマクロを実行することもできますが、ここでは説明しきれませんので必要なら市販の参考書等をご覧ください。

参考URL:
http://www.relief.jp/itnote/archives/000482.php
iiwa
質問者

補足

丁寧なご回答ありがとうございました。 が、やってみたのですが出来ません。。 元の表をカスタマイズしてしまったので、前提条件に戻してはみたのですが。 もう一度やってみますが、VBAの分かりやすく詳しい解説書でお勧めのものがあれば教えて下さい。

関連するQ&A