プロが教えるわが家の防犯対策術!

Excel2016を使用しています。

添付ファイルのような仕組みのファイルを作成したい場合どのような
機能を使うのが一番よいでしょうか?

①ABC順に更新されたデータが上がってきます。
②そのデータの「欠品」と「生産終了」のみだけを抽出したファイルを作成したい(Sheet2)
③「①」の工程と「②」の工程はそれぞれ別シート(Sheet1/Sheet2)
④Sheet2を中心に都度更新される形
⑤Dデータは番号の重複させたくない

関数または、テーブル/ピボットテーブル/その他の方法、何が一番効率よくできますか?

どなたかよろしくお願いします。

「Excelでデータを抽出するに良い方法」の質問画像

質問者からの補足コメント

  • ご指摘にありましたので、補足致します。
    ABCは別ブックからデータをもってきます。
    スタートから締め時間までに30分に一度内容を都度確認、締めの時間までに
    作業をおわらせなければならないため、最終データ(ABCが揃った状態)を待って作業を行うことはできません。

      補足日時:2023/02/06 13:33
  • うれしい

    ご回答ありがとうございます。
    >「ABCのデータは時間の経過とともに追加されていくものであって、古い部分は変更されないものと解釈しました。
    その前提であれば、エクセルのフィルタ機能とコピペで行えます。このやり方なら皆ができそうです。

    そのとおりです。

    ただ、「5、」の「コピー範囲の始点は左上の[番号]セルからとし」とありますが、ちょっと手順通りにやってみましたが、かなりのデータがあるため次に何行目からスタート(もしくはどこまで貼り付けたのか)がわからなくなりそうな気がしました。

    そうなるとやはり最初の行から貼り直しになりますが、そうすると「4.」作業ができなくなりますし

    もう少し考えます。でもヒントになりました。

    No.7の回答に寄せられた補足コメントです。 補足日時:2023/02/07 11:32

A 回答 (9件)

ABCのデータは時間の経過とともに追加されていくものであって、古い部分は変更されないものと解釈しました。


その前提であれば、エクセルのフィルタ機能とコピペで行えます。

◆やり方
1.AファイルをSheet2にコピペします。
2.Sheet2に貼り付けた[番号] [在庫状況]の記載がある行の行全体を選択して、データ⇒フィルタ とします。
3.[在庫状況]のセルに表示される▼マークをクリックして、『欠品』と『生産終了』の2つのみにチェックが入った状態にしてOKとします。
4.Dファイルの[倉庫名] [状況]を入力します。

5.Bファイルをコピペします。コピー範囲の始点は左上の[番号]セルからとし、Dファイルの[番号]セルを選択して貼り付けをします。(フィルタは解除する必要なし)
6.メニューのフィルタの右横にある『再適用』ボタンをクリックします。
7.手順4繰り返し

8.Cファイルをコピペします。手順5と同様です。
9.手順6繰り返し
10.手順4繰り返し

11.ここで完成にしてもよいと思うが、フィルタで非表示になっている行を削除するには、Dファイルの表全体をコピー ⇒ 新規シートに貼り付け ⇒ Sheet2を削除 ⇒ 新規シートをSheet2に名前変更 とします。
「Excelでデータを抽出するに良い方法」の回答画像7
この回答への補足あり
    • good
    • 0

毎日、30分毎?の作業ですからエクセルではなく


アクセスを使うのが一番良いと思います。
ファイルの内容を一度確認する必要があるのなら
確認後アクセスのデータベースにどんどんインポートし
その時点での最新状況を抜き出せるようにしておく。
〆でエクセルに出力。
    • good
    • 0

No.7です。



補足を読みました。
古い部分のデータ更新はないということですので、BファイルでもCファイルでも、手順5ではそれぞれの全データをコピペすればよいです。
※行単位の選択ではなく、セル範囲選択でのコピペになります。

例えば、Bファイルを貼り付けるときはAファイルと共通の部分(サンプルの1~3)は同じものの上書きになり、Bファイルで新たに追加された部分(サンプルの4~5)がDファイルに追加されることになります。フィルタが掛かっているのでうまく貼り付けられるか心配があると思いますが問題ありません。ただし、手順6の『再適用』を忘れずにクリックする必要はあります。
    • good
    • 0
この回答へのお礼

最後回答ありがとうございました。
>※行単位の選択ではなく、セル範囲選択でのコピペになります。

そうでしたセル範囲選択してはりつけすればもんだいないですね。
難しく考えすぎました。ありがとうございます。

ご丁寧にありがとうございました。ベストアンサーつけさせて頂きます。

お礼日時:2023/02/08 10:42

パワークエリでできると思いますが。

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。これも検討したのですが、
確かにデータは追記された状態になります。
しかし手順として1①Aのデータを取り込み②「倉庫名」のセルに入力する
③次のBのクエリを追加した場合、②の倉庫名を入力したデータは消された状態で追加統合されました。これだとできないのでもう少し考えてみます。

お礼日時:2023/02/07 17:20

こんにちは



以下、簡略化したモデルと、アイデアのみですが・・

>ABCは別ブックからデータをもってきます。
データがどのように「持ってこられる」のか不明ですけれど・・

1)ブックの位置・名称が固定と考えても良いのなら、予め読み込みのクエリを設定しておきます。
添付図では、ご提示の図に習ってA:B列に3つのブックを並べていますが、数が不定ならAブックはA:B列、BブックはC:D列というように分けておいてもかまいません。
(数の上限を設定できるのなら、A:Bの2列にまとめてしまった方が後が簡単です。添付図では画像の関係で詰めてありますが、実際は行数の間隔をあけることになるでしょう。)

これによって、「クエリの接続(更新)」を行うだけで、最新データを取り込めるようになります。

2)365環境(FILTER、UNIQUE関数等が使える環境を想定)であるとして、ご質問文にあるデータを抽出する関数を別シートに設定しておきます。
(添付図では、同じシート内のE:F列に設定してあります)
添付図では、E2セルに
=UNIQUE(FILTER(A:B,(A:A<>"")*((B:B="欠品")+(B:B="生産終了")),""),0)
を入力してあります。

これにより、自動的に該当データのみが下方にスピルされます。


※ もしも同じ番号で、在庫状況が異なるデータがある場合は両方とも抽出されます。
そのような可能性がある場合は、上式では表示位置が離れてしまうので、関数で更にSORTしておく方がわかりやすくなるでしょう。
※ 設定が多少面倒かもしれませんが、上記により「更新」を行うだけで、結果が自動反映されることになりますが、いかがでしょうか?
「Excelでデータを抽出するに良い方法」の回答画像5
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ずいぶん前にもお世話になった気がしてます。

この方法も一案として頂きます。大変勉強になりました。
少し手順が多いためベストアンサーにできず申し訳ありません。
またよろしくお願いします。

お礼日時:2023/02/08 10:48

う~ん、だとしても毎回ファイルを開いてオートフィルタとかで欲しいデータを表示させてそれをコピペ。

次のファイルは同様に抽出して番号を見て前に貼り付けたもの以降をコピペして貼り付け、以下繰り返しとかではダメなんでしょうか。
それほど手間がかかるとも思えませんが。
    • good
    • 0

全てのファイルを一つにして、在庫状況をキーにして並べ替えて、「欠品」と「生産終了」のものだけをDファイルにコピーでしょうね。



一番効率的なのはVBAでつくることです。
簡単にできるはずですので、一度トライされればいかがでしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。難しく考えすぎてました。
重複行の削除について、VBAを検索しています。
たくさん出てきました。トライしてみます。(^^)/

お礼日時:2023/02/08 10:44

多分質問でお書きになっていない仕様などがまだあるように思うのですが、添付の内容だけで判断するならCまで待って抽出すればいいのでは?となるように思います。


もっと、どういった点が不都合なのかとか、更新頻度とか詳しい内容を書かれた方がいいのでは?
それと、A、B、Cは別ブックということなのでしょうか?
    • good
    • 0
この回答へのお礼

ご指摘ありがとうございます。
データの更新は30分毎で9時スタートで14:00まで。
内容を30分毎にに都度確認し作業を終了させます。
ABCは別ブックです。

お礼日時:2023/02/06 13:27

①各ファイルを〝在庫状況〟をキーにして分類(SORT)機能を使う


②各ファイルの〝欠品〟〝生産終了〟をまとめて抜き出す
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!