• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで商品を抽出するシートを作りたいです。)

エクセルで商品を抽出する方法

このQ&Aのポイント
  • エクセルで利益率の差額が大きく売上数が多い商品を抽出する方法について教えてください。
  • エクセルの入力タブに「追加ボタン」を設置し、ボタンを押すと入力タブと出力タブに1行が追加される方法について教えてください。
  • エクセルの出力タブから売掛金と原価のデータを取得し、開きが大きい商品レコードを抽出して行に色を付けるラジオボタンの設置方法について教えてください。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>最終行を見つけ出すとことまでは理解出来ましたがどうやって1行を追加するするのでしょうか? 仮に簡単なシートを作成して試してください。 入力  A  B 商品名 {値} 出力    A 1 商品名 2 空白 3 空白 4 空白 5 空白 6 空白 7 空白 8 空白 9 合計 と準備します。 Sub ボタン1_Click() GYOU = Sheets("出力").Range("A9").End(xlUp).Row + 1 Sheets("出力").Range("A" & GYOU).Value = Range("B1").Value End Sub を実行してみます。 GYOU = Sheets("出力").Range("A9").End(xlUp).Row + 1は A9セル(合計と文字が入っているセル)から上へ移動して空白でない行の1つ上の行の番号を 変数 GYOU に入れる。 Sheets("出力").Range("A" & GYOU).Value = Range("B1").Value は 出力のシートの GYOUで得られた行番号の A列に 入力のシートの B1セルの値を入れる となります。 特に1行追加するのではなく、空白のセルに値を入れていきます。 売掛金、原価と売上数量、契約数の関係をきちんと数式にしないとどんな優秀なソフトでも 無理です。 >あと質問サイト「OK Wave」にMS Officeというカテゴリーがないんです。 ちなみに デジタルライフ の ソフトウエア に MS Office があります。 エクセル、ワード、アクセスなどのソフトの使い方についての質問のコーナーです。

ishot2010
質問者

お礼

回答ありがとうございます。 頑張って作ってみます。 デジタルライフ>ソフトウエア>MS Officeというカテゴリがあるのですね。 次回からエクセルの質問をする際はそちらにするように心がけます。 ありがとうございました。

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>出力シートが印刷する画面なので入力シートで縦1列で一気に打って入力漏れを無くしたいのです。 >現在は印刷するページの散らばった入力になっていてどうしても入力漏れが生じています。 いまいちやりたいことが見えないのですが。 入力 と 印刷 の2枚のシートがあります。 入力のシートは  商品名、売掛金、原価  ノート 100   20  鉛筆   10   5  消しゴム 50   10 ・・・・ と順に入れるだけで、 印刷のシートは  商品名、売掛金、原価  ノート 100   20  鉛筆   10   5  消しゴム 50   10 ・・・・  合計  5000   1000 と印刷する画面になっている 印刷シートのそれぞれのセルに =入力!A2 と 表示したいシート名 ! セル名 を入れておけば入力のシートの決まったセルの 値が表示されます。VBAを使う必要はありません。 ただ、本当にこれで使いやすい?と思うのですが。 一般的には データのシートと印刷の際に必要な部分を抽出する印刷シートの2つを準備して 例えば 印刷のシートに日付を入れると、その日付のデータが一覧で表示されて 日報を印刷するなど使い方をします。 3についてですが エクセルには条件付き書式 という機能があります。 一例ですがA列に 1、2、3・・・と数値を縦に入れたシートを準備してください。 ホーム=>条件付き書式=>ルールの管理=>新規ルール で画面の様に 3つのルールを追加すれば、ご希望の通り行に3種類の色分けが勝手にしてくれます。 再度 エクセル2010で説明しています。エクセルのバージョンも記述してください。 たぶん、VBを駆使するほどでないと思いますのでMS Office のカテゴリーで質問されたほうが 良いと思います。 ちなみに GYOU = Sheets("出力").Range("A1048576").End(xlUp).Row + 1 は、エクセルの最大行から上へ移動して空白でない行の一つ下を探しています。 Range("A1048576")の部分を 合計を入れているセルに変更すれば 合計の行から上へ移動して空白でない行の一つ上を探してくれます。

ishot2010
質問者

お礼

回答ありがとうございます。 入力シートは A列  B列 商品名 {値} 売掛金 {値} 原価  {値} 出力シートが例ですが下記のように順不同で入力しずらいので、 縦に一気に打っていけるようにしたいのです。 A列    B列 売掛金{値} 商品名{値} 原価 {値} (実際の項目はもっと多いです) 質問1である入力シートの値を出力シートに転記するには「シート名!セル名」で出来ることが分かりました。 質問1は解決しました。 質問2の追加ボタンですがGYOU = Sheets("出力").Range("A1048576").End(xlUp).Row + 1で 最終行を見つけ出すとことまでは理解出来ましたがどうやって1行を追加するするのでしょうか? 質問3は、 売掛金と原価から開きが大きく、 かつ売り上げ数上位10位までのデータレコードを抽出する条件式の書き方が分かりません。 色の付け方は分かりましたが・・・・ 入力シートを下記の1行にしないと条件書式で1行ずつ抽出できないですよね? A列  B列  C列  D列  E列 F列 商品名 {値} 売掛金 {値} 原価 {値} 入力シートを上記のようにして、 条件式を売掛金であるD1 - 原価F1で全部の商品を検索して、 上位10商品の行に色を付けたいと思ったんですが私の理解を超えています。 難しすぎます。 あと質問サイト「OK Wave」にMS Officeというカテゴリーがないんです。 あるのかな?

ishot2010
質問者

補足

お礼入力に1部間違いがありました。 ×:条件式を売掛金であるD1 - 原価F1で全部の商品を検索して、 上位10商品の行に色を付けたいと思った ○:条件式を売掛金であるD1 - 原価F1で全部の商品を検索して、 かつ売り上げ数上位10商品の行に色を付けたいと思った ですから入力項目に契約数が別途いりそうです。 質問者である自分でも分からなくなってきたので申し訳ないです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

アクセスなどデータベースソフトには詳しいが、エクセルは詳しくないかたでしょうか? 質問の意味が良く伝わらないのですが。 >1.エクセルのタブに「入力」と「出力」という2つのタブを用意します。 エクセルは、シートがあって、それぞれのシートの下部分にタブがあって、そこにシート名を 入れてあります。 この場合、入力 と 出力 とういう名前の2つシートを準備する という解釈でよろしいでしょうか? >入力タブのA1に商品名、B1に売掛金、C1に原価と直接入力して、 >A2以下に入力すると出力タブのA2以下に転記される方法を教えてください。 >  (入力タブに入力した値を出力タブに表示する方法) 入力という名前のシートに入れた内容が 出力というシートに同じに入る様にしたい。 という事でしょうか。そのような重複したシートの必要性が本当にあるの?   >2.エクセルの入力タブに「追加ボタン」を設置して、 >  追加ボタンを押すと入力タブと出力タブに1行が追加される方法を教えてください。 >  (ボタンの設置方法と行数の増やす方法) >  |レコード追加| エクセルのシートでは、既に最大行数まで(下の方にたっぷりと)空白のセルが準備されています。 データベースのように レコードの追加 という操作は必要ありません。 質問を  エクセルの入力というシート上に「追加ボタン」を設置して、 追加ボタンを押すと入力というシートの 2行目に入れてある内容が 出力というシートの最終行の下に記入される方法を教えてください。 と解釈しますと 添付の画像を参考に シート名 入力 と出力 の2枚のシートを準備します。 それぞれに項目を入れておきます。 入力のシートで 開発=>挿入 とボタンを押して フォームコントロールのボタンをクリック シート上に ボタンが配置できます。 ボタンが出来たら マクロの登録=> 新規作成 VBエディターが開いたら Sub ボタン1_Click() GYOU = Sheets("出力").Range("A1048576").End(xlUp).Row + 1 Sheets("出力").Range("A" & GYOU & ":C" & GYOU).Value = Range("A6:C6").Value End Sub となる様にマクロをコピー VBエディタを閉じて ボタンを押すと 入力シートのA6~C6の内容が 出力シートの最終行の下に入っていきます。 エクセルのヴァージョンが記述してなかったので エクセル2010にて説明しています。

ishot2010
質問者

お礼

回答ありがとうございます! 一生回答が付かずに終わるのかと嘆いていました。 アクセスは高いので買えませんでした。 データーベースは抜きのエクセルだけで対応したいです。 1. 私がタブと読んでいたのはエクセルではシートと言うのですね。 私は入力シートと出力シートの2つに分けて、 出力シートが印刷する画面なので入力シートで縦1列で一気に打って入力漏れを無くしたいのです。 現在は印刷するページの散らばった入力になっていてどうしても入力漏れが生じています。 2. あと追加ボタンですが、 ボタンを押すと入力シートと出力シートの行数が増えるようにしたいのです。 説明が難しいですが、 出力シートの最後尾の行には計算結果などの合計という項目があるので、 この追加ボタンを押すと、 入力シートは最後尾に行が追加されて、 出力シートには最後尾行から1つ上に行が追加されるようなボタンにしたいです。 3.は難しいですか? マクロが分からないので困っています。助けてください。