- ベストアンサー
Excelデータベースから別シートに抽出する方法とは?
- Sheet1に商品の受注状況をリストにしています。これをデータベースとして、商品の出荷指示書を作りたいです。
- 出荷指示書を作るためには、オーダーNoを入力すると顧客名が表示され、商品コードを入れると注文数が表示されるようにしたいです。
- 注文していない商品の場合は、注文数欄に「0」または「×」が表示されればいいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは~ 質問に不明な点があります。 > 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」 と表示されます。
その他の回答 (1)
- shiotan99
- ベストアンサー率68% (140/203)
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を見て、お好みの色番号に変更してください。 色見本の右にあるいちばん上の数字が色番号です。 シート上にコマンドボタンを配置し、それをクリックして上記のマクロを実行することもできますが、ここでは説明しきれませんので必要なら市販の参考書等をご覧ください。
補足
丁寧なご回答ありがとうございました。 が、やってみたのですが出来ません。。 元の表をカスタマイズしてしまったので、前提条件に戻してはみたのですが。 もう一度やってみますが、VBAの分かりやすく詳しい解説書でお勧めのものがあれば教えて下さい。
補足
ありがとうございました。 お蔭様でうまく出来ました。 が、ひとつ補足がございます。 出荷指示を出した後、データベースの該当箇所(注文数)のセルに色づけ又はフォントの色を変えると言う事は出来ますか? いまは、出荷指示書は使い廻しの予定で、プリントアウトしたら次の入力という感じです。 出荷後、データベースを上記のようにしようとすれば、指示書を1件ごと保存する必要があるかと思いますが。。。 よろしくお願い致します。