エクセルで他シートに特定項目のみ自動入力する方法

このQ&Aのポイント
  • エクセルで特定の項目を他のシートに自動入力する方法について教えてください。
  • 購入一覧のシートにある果物の項目を指定して、別のシートに自動入力する方法を教えてください。
  • みかんやりんごなどの果物が記載されているシートに、特定の果物を入力すると、それに対応する行が他のシートに自動入力される方法を教えてください。
回答を見る
  • ベストアンサー

エクセル 他シートに特定項目のみ自動入力する方法

質問 エクセルで、次のように設定することが、関数またはマクロでできませんでしょうか。どうか知恵をお貸しください。 Sheet1(購入一覧)  果物  単価(円)  個数  購入金額(円) みかん    100     2  200 りんご    200 3 600 Sheet2(みかん)  Sheet1の「果物」列で「みかん」と入力すると、「みかん」行全体(「果物」列~「購入金額(円)」列まで)が自動入力される。  一方、Sheet1で「果物」列に他の果物(りんごなど)を入力しても、Sheet2に自動入力されない。 Sheet3(りんご)  Sheet1の「果物」列に「りんご」と入力すると、「りんご」行全体(「果物」列~「購入金額(円)」列まで)が自動入力される。  一方、Sheet1で「果物」列に他の果物(みかんなど)を入力しても、Sheet3に自動入力されない。

  • Ndur
  • お礼率80% (20/25)

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

  • ベストアンサー
  • msMike
  • ベストアンサー率20% (363/1775)
回答No.5

添付図参照 1.Sheet1、Sheet2、Sheet3 のシート名をそれぞれ  ̄ ̄購入一覧、みかん、りんご  ̄ ̄に変更 2.このブックに[名前を付けて保存]を実行しておく 3.シート「購入一覧」において、  ̄ ̄範囲 A1:D1000 を選択 ⇒ Alt+MC ⇒ "上端行"だけにチェック入れ  ̄ ̄⇒ [OK] 4.シート「みかん」のセル A2 に次式を入力 ⇒ セル A2 を右3列に  ̄ ̄オートフィル ⇒範囲 A2:D2 を下方にズズーッとオートフィル  ̄ ̄ =IFERROR(INDEX(INDIRECT(A$1),SMALL(IF(果物=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,99),ROW(果物)),ROW(A1))-1),"")  ̄ ̄【お断り】上式は必ず配列数式として入力のこと 5.シート「りんご」において、ステップ4を実行

Ndur
質問者

お礼

ありがとうございます。試してみたのですが・・・・さらに試してみます。

その他の回答 (4)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.4

VBAなしで、おやりになりたいことが可能です。 テーブルとして書式設定は如何でしょう 添付のように 添付のように任意のセルをアクティブにして⇒ホーム ⇒テーブルとして書式設定⇒先頭行をテーブルの見出しとして使用するに? ⇒OK  と進みます。 テーブルとして書式設定すると ・各見出しの右に??が表示されフィルターと並び替えの機能になります ・空白行もフィルタ対象になり、印刷時に空白行を除去できます ・データ入力時にEnterでマウスカーソルが右に移動しますが  テーブルの右端の次は次行の先頭になり入力効率が上がります ・数式は一つのセルに定義すると他の行も同じ式が適用されます

Ndur
質問者

お礼

返答が遅くなりましたが、ありがとうございます。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

恐らくこういう事がしたいのだろうと勝手に判断してマクロを作成しました Sheet1にすべて入力した後で以下のマクロを動かすと、果物名別に新規シートを作成し、情報を出力します。 あくまでサンプルですので、変数宣言やエラー処理もしていません。悪しからず。 Sub sample()   Set myDic = CreateObject("Scripting.Dictionary")   With Worksheets(1)     '果物名一覧作成     On Error Resume Next     For i = 2 To .Range("A1").End(xlDown).Row       myDic.Add .Cells(i, 1).Value, ""     Next i     '果物名毎に新規シートに出力     myKey = myDic.keys     For i = 0 To (myDic.Count - 1)       .Range("$A:$E").AutoFilter Field:=1, Criteria1:=myKey(i)       Sheets.Add After:=ActiveSheet       .Range("A1").CurrentRegion.SpecialCells(xlVisible).Copy ActiveSheet.Range("A1")     Next i     .Range("$A:$E").AutoFilter   End With End Sub

Ndur
質問者

お礼

返答が遅くなりましたが、ありがとうございます。

  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.2

1番簡単な方法ですかSheet2、A列をワークエリアに使います。 A2 =(Sheet1!A2="みかん")+A1 B2 =IFERROR(INDEX(Sheet1!B:B,MATCH(ROW(A1),$A:$A,0)),"") D2までコピペして下にコピペ A列はみかんに決まっているからいらないだろうと考え、ワークエリアにしました。 配列関数を使えば、ワークエリア無しでできますが、力不足でできませんでした。式が複雑になるうえ、コンピューターに負担がかかるのでやめた方がいいです。 VBA の方がよければ、補足又はお礼に書いていただければ作ってみます。

Ndur
質問者

お礼

返答が遅くなりましたが、ありがとうございます。 折角作成も言っていただきましたが、御迷惑をおかけしますので、何かの機会にまたお願いするかもしれません。ありがとうございました。

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

質問文の書き方から、質問者は、エクセルやVBAやシステムの経験は少ないように思う。 例えば、質問を、一言で表現すると、「Sheet1にデータを入力し、その果物列の品名で、各品物名のデータを、果物別の別シートに振りわけしたい」と言えば、よいことなのに、説明がくどい? ーー (1)関数ではむつかしいと思う。式が複雑になる。 (2)質問通りに「構想」すると、VBAの「イベント」という考え方を取り入れることになるが、VBAやイベントやコントロール・フォームなどの経験が少ないと無理だと思う。もっと勉強してからの課題だと思う。 「イベント」を使うと、既存データの一部変更などの対処が必要で複雑化する。 (3)Sheet1への、その回(その1日分やその回のまとめたデータ原書)の入力が終わったら、そのきっかけで、「バッチ処理」(まとめてSheet1全体を振り分けしなおし)をするのが、わかりやすく、安定していると思うが、Sheet1への1行入力のつど、各シートへ振り分けをしないとダメなのかな。  本来は、最低でも、Access程度のデータべース的なソフトで、それを扱える 程度の人がやること。まずエクセルを発想するレベルでは、力不足だと思う。 特に本件が、仕事関係の課題ならば、特にそうだと思う。本当はプロに相談することを勧める。 ーー こういう、システムに絡んだ、「構想」は、後のこのデータの利用法や、その後にそれを利用する他人の使い勝手などとも関連するので、システムの良き構想が要る。経験が少ないものが、自己の思い付きでやっては、失敗すると思う。

Ndur
質問者

お礼

返事が遅くなりまして申し訳ございません。 まさにご指摘のとおりで、自分には困難な作業と感じております。周囲に相談できる人が全くいませんでしたのでご相談させていただきましたが、力不足を痛感するところでございます。

関連するQ&A

  • Excel ピボットテーブル項目を表示させたい

    ピボットテーブルで、集計をした場合に下記表の項目(1)の行に同じ名前を表示させることはできますか? Excel2003です 項目(1) 項目(2) 3月 累計  りんご 金額  100  400  個数   10 40  単価 10 10 みかん 金額 300 1200  個数 15 60  単価 20 20              ↓ 項目(1) 項目(2) 3月 累計  りんご 金額  100  400 りんご 個数   10 40 りんご 単価 10 10 みかん 金額 300 1200 みかん 個数 15 60 みかん 単価 20 20 ピボットテーブルの集計後並べ替えたり、するのに必要です。 ご存知の方教えて下さい!

  • エクセルのドロップダウンと自動入力

    エクセルについての質問です。 シート1に 果物  値段  栄養 りんご 200円 ビタミンC1000mg みかん 100円 ビタミンC2000mg のようなデータを記入し、 シート2に 果物のドロップダウンと個数入力すると、値段と栄養が出てくるような表を作りたいです。 シート1のデータ入力と、シート2のドロップダウンは作る事が出来たのですが、 ドロップダウン内の果物を選択すると、値段と栄養を自動的にシート2に入力される方法が分かりません。 方法を教えていただきたいです。 よろしくお願いいたします。

  • エクセルで選択した項目をマークする方法

    SheetBで選んだ項目を、SheetAの該当する項目の隣の列の四角を □から■になるように、数式を組みたいのです。 ・SheetA       A列  B列 1行目  □   りんご 2行目  □   みかん 3行目  □   ぶどう という表を作成しております。 SheetB       A列                                    B列 1行目  選択する果物を、B列のリストボックスより選んでください   {りんご,ぶどう、みかん} シートB列の (1,B)は、リストボックスで簡単に出来るのですが、 シートAの、(3、A)の、ぶどうを□から■にする方法がわからないのです。 当然、ぶどうの次に、りんごが選ばれれば、ぶどうは□、りんごを■にしたいのです。 解決方法をご存知の方がいらっしゃいましたら ご教授のほう宜しくお願いします。

  • エクセル 関数を自動的に入力するVBAで困っています

    VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。      A      B       C 1   日付    品番     商品 2   10/25    10     りんご 3   10/26    20     みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。

  • エクセルで不特定の項目ごとに合計を自動計算したいのですが。

    こんな表があったとします。 品名  数量  単価  金額 りんご  10  250  2500 ばなな  8  120  960 すいか  15  700  10500 ばなな 3 120 360 りんご 21 250 5250 ↓ りんご 7750 ばなな 1320 すいか 10500 こんな感じに自動で入力された商品ごとの合計金額を計算したいのです。 商品は不特定ですのでどんなものが入力されるか分かりません。 宜しくお願いいたします。

  • Excel VBAにおける複数条件での検索方法

    以下のように、Excelシートがあって このExcelシートで以下の条件で検索、その結果を返すVBAを作りたいのですが、悩んでいます。   検索条件 果物:りんご        産地:青森         複数ある時は、購入日が一番古いものを選ぶ。        更に複数ある時は、値段の安いものを選ぶ。    ⇒行番号を返す   これで、1つの行が選択できたら、そのF列に「在庫なし」を挿入する。    A列    B列  C列  D列  E列  F列 1行 購入日   果物  産地  数量 値段  在庫 2行 2017/4/10 りんご  青森  2   110 3行 2017/4/10 みかん  愛媛  3   350 4行 2017/4/10 りんご  青森  1   100 5行 2017/4/10 りんご  長野  2   120 6行 2017/4/12 みかん  静岡  3   350 7行 2017/4/13 みかん  愛媛  2   240 8行 2017/4/14 りんご  長野  2   120 9行 2017/4/15 りんご  青森  1   100 結果としては、上から4行目のリンゴのF列に「在庫なし」が 入るようにしたいです。 すみません、いろろと調べてはいるのですが、ちょっとわからず、こちらに投稿しました。どなたか、わかる方教えていただければ幸いです。 よろしくお願いします。

  • Excel 異なるシートに自動入力 請求書作成

    例ですが、以下のようにsheet1のセルに入力されています    【sheet1】     A      B      C      D 1  品物   お届け先  配送料   名前 2  リンゴ   品川     100    佐藤 3  みかん  足立      150 田中 4  リンゴ   太田     100    加藤 5  いちご   品川     100    佐藤               ・               ・               ・               ・ *ABCD、12345はセルの位置を示しています。 sheet2に 以下のように自動で入力させ、佐藤さんへの配送料の請求書を作成を考えております。 ・名前がsheet1に「佐藤」と入力されたものだけseet2に 「品物」「配送料」を自動で入力 ・空白は無くA2セルから順に入力される ・「品物」「お届け先」「合計」が入力されている、行には入力しない  (入力されている行は飛ばしてその次の行から入力) 【sheet2】     A      B      C      D 1  品物   お届け先                ←「品物」、「お届け先」は固定  2  リンゴ    100                  ←入力欄 3  いちご 100                  ←入力欄       4                              ←入力欄     5 合計    200                  ←「合計」 は固定  6                              ←入力欄 VLOOKUP関数を用いて自動で入力させようと考えたのですが、TRUEではないセルは「#N/A」(もしくはIF文で空白)と入力させてしまうため,他の方法がございましたら、と思い皆様の知恵をお借りしたく投稿いたしました。 宜しくお願いいたします。

  • エクセル AVERAGEを取るときに

    平均値を取りたいのですが 範囲が少し複雑だったのでどのように式を作ったらいいのか わかりません。 シート1に A列 りんご みかん ばなな このようにデータがありそれぞれシート2にある りんご の個数の平均値をB列に求めたいのですが シート2には A列   B列 りんご  3      8      9 みかん  5      9      10 このように果物の種類の項目名が1番上にしかなく 個数はそれに対して必ず3行あるので VLOOKUPなどを使うとりんごと書かれている真横のセルしか 参照しないので常にその項目の横のセルから3行を参照したい のですが どうしたらよいでしょうか? 教えてください。よろしくお願いいたします。

  • エクセルのデータを他のシートにも自動的に入力したい

    パソコン初心者です。よろしくお願いします。 エクセルに入力したデータの一部だけを,他のシートにも自動的に入力されるようにすることはできるのでしょうか。 例えば,シート1の1~10行目までデータを入力するとします。そのうち,1~5行目まではシート2へ,6~10行目はシート3へと分割して,自動的に入力できるようにしたいのです。 似たような趣旨の質問がいくつかあったのは拝見したのですが,回答を読んでもほとんど理解できませんでした。ホントに初心者です。 お手数ですが,かみ砕いて細かく説明をしていただけると助かります。よろしくお願いします。

  • Excelで入力したデータを他のシートにも反映したいです

    Excelでシートに入力したデータだけを他のシートに表示させたいです・・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。 シート1  Å列    B列 C列      キャベツ     玉   1 りんご     個    2 オレンジ    個 バナナ     本    10 きゅうり    本 ニラ      Kg  20.5 シート2  Å列    B列 C列 キャベツ     玉   1 りんご     個  2 バナナ     本   10 ニラ      Kg  20.5 ↑のように。シート1に入力したデータを入力した行ごと表示させたいです。

専門家に質問してみよう