Excel (一般機能)

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

 
(Windows 10 Home : Excel 2016)
項目別にわけたい
投稿日時: 21/03/16 11:48:58
投稿者: toma100

 
よろしくお願いいたします。
表を項目別のシートに分けたくて、
パワークエリをつかいました。
しかし、項目の数が30個あるのです
パワークエリエディタ内で30個作ると
かなり大変です。
パワークエリで一度に分割する方法はありますでしょうか?
ちなみに、ピボットのページフィールドは、表の横に入力したいので、
体裁が都合悪く利用できません。
また、関数も重くなり、マイクロソフトクエリは、
会社のパソコンでうまく作動せずで、なんとか、
パワークエリで一度にできないでしょうか?
よろしくお願いいたします。

回答
投稿日時: 21/03/16 14:13:39
投稿者: WinArrow
投稿者のウェブサイトに移動

>項目
というのはなんですか?
ある列(例.A列)の値の種類が30個るということですか?
 
もし、そこ推測が当たっているんでした。
オートフィルタで絞り込むがでいますか?

投稿日時: 21/03/16 15:03:55
投稿者: toma100

ありがとうございます!
担当者の列があり、担当者ごとのシートにわけたいのですが、
30人以上います。
パワークエリでは、一度に分けられないのでしょうか?

回答
投稿日時: 21/03/16 15:11:07
投稿者: Suzu

ピボットテーブルのグループ化された項目の値に対し
ダブルクリックするとその詳細が 別シートに作成されます。
 
これを利用できませんか?

回答
投稿日時: 21/03/16 16:28:12
投稿者: んなっと

元データが時々更新される場合は面倒ですね。
 
新しい関数のFILTER関数使えますか?
もし使えたらこんな方法も。
最初だけ面倒ですが、元データの増減が即座に反映されます。
 
 
【実験準備】
 実験用の新規ブック、Sheet1に以下のような表を作成
→テーブルに変換
 
    A   B   C
 1 項目 日付 名前
 2  あ 1/20  N01
 3  い 1/21  N02
 4  う 1/22  N03
 5  あ 1/23  N04
 6  い 1/24  N05
 7  う 1/25  N06
 8  あ 1/26  N07
 9  い 1/27  N08
10  う 1/28  N09
 
●Sheet1の右隣にSheet2を追加
 
A1
=テーブル1[#見出し]
A2
=FILTER(テーブル1,テーブル1[項目]=INDEX(UNIQUE(テーブル1[項目]),SHEET()-1))
 
   A   B   C
1 項目 日付 名前
2  あ 1/20  N01
3  あ 1/23  N04
4  あ 1/26  N07
 
●画面下のシートタブのSheet2をマウスとCtrlキーで右隣にドラッグしてコピー、それをまた右隣にコピー、...[29回]
 
   A   B   C
1 項目 日付 名前
2  い 1/21  N02
3  い 1/24  N05
4  い 1/27  N08
 
   A   B   C
1 項目 日付 名前
2  う 1/22  N03
3  う 1/25  N06
4  う 1/28  N09
 
※シートの並びを変えてしまうとうまくいきません。

投稿日時: 21/03/16 17:40:14
投稿者: toma100

Suzu様
ありがとうございます!
説明不足で申し訳ございません。
元の変更追加があるので、ダブルクリックだと
リンクが切れてしまいダメなんです
 
 
んなっと様
ありがとうございます!
Office2019なので、その関数は使えないのです(涙

回答
投稿日時: 21/03/16 19:33:56
投稿者: んなっと

修正。
では...
 
●Sheet1
 
    A   B   C   D
 1 項目 日付 名前  列1
 2  あ 1/20  N01 10001
 3  い 1/21  N02 20001
 4  う 1/22  N03 30001
 5  あ 1/23  N04 10002
 6  い 1/24  N05 20002
 7  う 1/25  N06 30002
 8  あ 1/26  N07 10003
 9  い 1/27  N08 20003
10  う 1/28  N09 30003
 
D2
=IF(A2="","",IF(MATCH(A2,A:A,0)=ROW(),(INT(MAX(D$1:D1)/10^4)+1)*10^4,LOOKUP(1,0/(A$1:A1=A2),D$1:D1))+1)
下方向・↓
 
●Sheet1の右隣にSheet2を追加 1行目はSheet1をコピーして
 
   A   B   C
1 項目 日付 名前
2  あ 1/20  N01
3  あ 1/23  N04
4  あ 1/26  N07
 
A2
=IFERROR(INDEX(Sheet1!A:A,MATCH((SHEET()-1)*10^4+ROW(A1),Sheet1!$D:$D,0)),"")
右方向・→下方向・↓
 
●画面下のシートタブのSheet2をマウスとCtrlキーで右隣にドラッグしてコピー、それをまた右隣にコピー、...[29回]

投稿日時: 21/03/16 20:08:12
投稿者: toma100

んなっと様
 
凄いです!!!
コピーする度、項目が変更されるんですね
これが一番早そうですね、ありがとうございました!