Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
特定のIDデータを抽出,別ファイルへペーストする
投稿日時: 20/08/06 14:34:19
投稿者: 桃太郎7

宜しくお願いします。
特定のIDデータを抽出して別ファイルへペーストする
 
例題1:ファイル1 sheet1(ソフトボールスコア) 
   A  B  C  D  E  F  G  〜〜AH まで
 1 N0 背番 ID 打順 守備 選手 打率 〜〜〜AH まで
 2  1  1   1  1  投  A1  0.33
 3  2  2   1  3  一  B1  XX
 4  3  3   1  4  三  C1  XX
 5  4  6   2  3  投  A2  XX
 6  5  3   2  1  遊  B2  XX
 7  6  5   1  2  R  D1  XX
 8  7  1   2  5  一  C2  XX
 9  8  4   1  5  捕  E1  XX  NOは40まであります。
 
例題2:ファイルA(別ファイル)sheet1へペーストする。
 目的例
    A  B  C  D  E  F  G  〜〜AH〜〜
 1 N0 背番 ID 打順 守備 選手 打率  〜〜〜AH〜〜
 2  1  1   1  1  投  A1  0.33
 3  2  2   1  3  一  B1  XX
 4  3  3   1  4  三  C1  XX
 5  8  4   1  5  捕  E1  XX
 6  6  5   1  2  R  D1  XX  
 説明  
 1)IDの「1」を固定に抽出したい。
 2)B列(背番)は昇順にしたい 1.2.3.〜〜
 3)ID「1」で抽出された行データ(A:AH)の行全てをペーストする。
 
 いろいろとやりましたがファイルAへのペーストが上手く出来ません
 宜しくお願いします。
  

回答
投稿日時: 20/08/06 15:37:38
投稿者: Suzu

引用:
特定のIDデータを抽出して別ファイルへペーストする

引用:
 説明
 1)IDの「1」を固定に抽出したい。
 2)B列(背番)は昇順にしたい 1.2.3.〜〜
 3)ID「1」で抽出された行データ(A:AH)の行全てをペーストする。
 
 いろいろとやりましたがファイルAへのペーストが上手く出来ません
 宜しくお願いします。

 
ペーストという事は、数式ではなく、手動で良いのですよね。
 
 
 1)IDの「1」を固定に抽出したい。
 3)ID「1」で抽出された行データ(A:AH)の行全てをペーストする。
 
1. A:AH を 選び (面倒であれば 先頭セルを選んだ状態から「crt」+「Shift」+「End」)
   「データ」タブの 「フィルター」 を設定
2. ID 列の部分で、1を選択し、1のデータを抽出
3. 必要な範囲をコピー
4. 貼り付け先 に 貼り付け
 
 
 2)B列(背番)は昇順にしたい 1.2.3.〜〜
5. 貼り付け先 の 表を選んで 並べ替え

投稿日時: 20/08/06 17:49:47
投稿者: 桃太郎7

suzuさん 早速の回答ありがとうございます。
ごめんなさい!私の説明が不十分でした。
ペーストの意味を勘違いしていました!数式で抽出したデータをファイル1からファイルAへ
貼り付けがしたいです。
1)から3)までの操作を数式で行いたいです。
 
説明不足な点をお詫びします。宜しくお願いします。

回答
投稿日時: 20/08/07 11:08:45
投稿者: Suzu

並び替えも含めてですか?
 
数式でも出来るとは思いますが、かなり複雑でしょうね。
私にはお手上げです。
 
出来たとしても、予め数式を埋め込んでおく必要があり、
・数式が複雑であればあるほど、
・数式が埋め込まれたセルが多いほど
ファイルを容量が大きくなり、開くのに時間を要する事になります。
 
私なら VBAで処理してしまうか、外部データの取り込みで処理してしまうでしょう。
Excel2016 だと 外部データの取り込み は データの取得と変換 に変わっている様ですが
手元、古いExcelなので Excel2016手順 は 判りません。
 
 
 
Excel2013の場合の手順
 
1. 新規ファイルで「データ」-「外部データの取り込み」-「その他のデータソース」-「Microsoft Query」
2. データソースの選択 で、「Excel Files *」を選択
    「クエリウィザードを使って作成/編集する」 に チェック の上 OK
3. ブックの選択 で ファイル1 を選択
 
4. クエリウィザード - 列の選択 「sheet1$ (シート名 + $ )」を選択 し、「>」クリック
   クエリの列 に、列名が全て表示されるのを確認の上、「次へ」
5. クエリウィザード -データの抽出 で 抽出する列 に 「ID」を選択
   次の条件に一致する行だけを含める の コード の左側「=」、右側「1」を選択し、「次へ」
6. クエリウィザード - 並べ替え順序の設定 で、優先されるキー に「背番」を選択
    昇順 になっている事を確認し 「次へ」
7. Microsoft Excel にデータを返す で 「完了」 (必要に応じてクエリの保存)
 
8. データのインポート で、「テーブル」「既存のワークシート」「=$A$1」 である事を確認し
  「プロパティー」
9. 接続のプロパティー の使用 で「ファイルを開くときにデータを更新する」をチェックし「OK」
10. データのインポート に戻るので、「OK」
 
 
Excel 2019 で、外部データの取り込みを行うには
「ファイル」タブ「オプション」から、Excelのオプションで
 データの 「レガシィデータインポートウィザードの表示」「データ接続ウィザード」に
チェックを行うと、「テータ」タブの、データの取得 の 従来のウィザード に 出てきてます。
もしかすると、先の 「Excel2013の場合の手順」が出来るかもしれません。

回答
投稿日時: 20/08/07 12:46:19
投稿者: んなっと

ファイル1を開いた状態で、ファイルAのSheet1に
 
    A   B   C   D   E   F   G
1     N0 背番 ID 打順 守備 選手
2 1.001   1   1   1   1  投  A1
3 2.002   2   2   1   3  一  B1
4 3.003   3   3   1   4  三  C1
5 4.008   8   4   1   5  捕  E1
6 5.006   6   5   1   2  R  D1
 
A2
=IFERROR(AGGREGATE(15,6,([ファイル1.xlsx]Sheet1!$B$2:$B$100+[ファイル1.xlsx]Sheet1!$A$2:$A$100/1000)/([ファイル1.xlsx]Sheet1!$C$2:$C$100=1),ROW(A1)),"")
下方向・↓
B2
=IF($A2="","",INDEX([ファイル1.xlsx]Sheet1!A:A,MOD($A2*1000,1000)+1))
右方向・→下方向・↓
 
 
桃太郎7さんには、改善していただきたい部分があります。
あとで書き込みます。

投稿日時: 20/08/10 10:34:07
投稿者: 桃太郎7

んなっとさん、ご回答ありがとうございました。
 いろいろとご指導頂きました数式で、私がお尋ねしました結果が得られました。
 
大変ご迷惑をお掛けしまして申し訳ありませんでした。
今後とも宜しくお願いします。