![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
No.6
- 回答日時:
こんばんは!
VBAでの一例です。
↓の画像で左側がSheet1で右側がとりあえず「営業」Sheetだけを表示。
Sheet2以降に所属名のSheet名で所属部署数のSheet数があるという前提です。
Alt+F11キー → 画面左下の「This Workbook」をダブルクリック → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub 所属Sheetに振り分け() 'この行から
Dim i, j, k As Long
Application.ScreenUpdating = False
For k = 2 To Worksheets.Count
j = Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row
If j > 1 Then
Range(Worksheets(k).Cells(2, 1), Worksheets(k).Cells(j, 2)).ClearContents
End If
For i = 2 To Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
If Worksheets(1).Cells(i, 1) = Worksheets(k).Name Then
With Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Offset(1)
.Value = Worksheets(1).Cells(i, 2)
.Offset(, 1) = Worksheets(1).Cells(i, 3)
End With
End If
Next i
Next k
Application.ScreenUpdating = True
End Sub 'この行まで
※ Sheet1のデータが変わるたびにマクロを実行してください。
(各Sheetに古いデータがあっても構いません)
以上、参考になれば良いのですが・・・m(_ _)m
![「EXCEL 元データを更新したら別シート」の回答画像6](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/667667_5497e93a3e0bb/M.jpg)
回答ありがとうございます。お礼が遅くなってすいません。
回答どおりやれば上手くいくのですが、実際は、各シートにフォーマットが定めれれており、私の低いマクロ能力では応用が利きませんでした。
No.5
- 回答日時:
NO3です。
前回の(1)の長い判り辛い数式例です。
仮に元データはSheet1のA:C列に所属・役職・氏名、見出し行あり、
(1)Sheet2のA1に所属名は入力
(2)Sheet2のA2に以下の数式を入力、入力完了時にshift+ctrl+enterキーを同時押下、
縦横に必要分コピー
=IF(COUNTIF(Sheet1!$A:$A,$A$1)>=ROW(A1),INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$A$2:$A$1000=$A$1,ROW(Sheet1!$A$2:$A$1000),9999),ROW(A1))),"")
後はこのシートを所属数コピーして、各シートのA1を所属名で変更して下さい。
回答ありがとうございます。お礼が遅くなってすいません。
回答どおりやれば上手くいくのですが、実際は、Sheet2のデータ(式を入力する場所)がD21から始まります。
ROW(A1)のところをROW(D20)としても上手くいきません(答えが空欄になる)。
どこを変えればいいのでしょうか?
No.4
- 回答日時:
バージョンがないので2003として回答
案1
シート1のデータそのものは使えないか?
なぜなら、オートフィルタで抽出するだけだと思うから
案2
マクロなら、オートフィルタやフィルタオプションの設定を使って記録してみるとよいと思う。
案3
その他、MSクエリを使えばマクロは不要だろうけど、2007/2010でも使えるかは不明だし、説明も厄介。
案4 数式
1行目C列~ 役職を横に並べた
C2セル
=SUM(C1,($A2=C$1)*1)
右へ下へオートフィル
G1セル 対象の役職入力欄(縦書きに意味はない)
G3セル 作業列の対象列を探す
=MATCH($G$1,$C$1:$E$1,0)
G5セル その役職の人数
=MAX(INDEX(C:E,,G3))
H2セル 対象の人の行番号
=IF(ROW()-1>$G$5,"",MATCH(ROW()-1,INDEX($C:$E,,$G$3),0))
下へオートフィル
I2セル
=IF($H2="","",INDEX(A:A,$H2))
右へ下へオートフィル
罫線などは 条件付き書式で整える
G列からJ列まで切り取って別シートへ貼り付け
![「EXCEL 元データを更新したら別シート」の回答画像4](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/655143_5497e13f605f2/M.jpg)
回答ありがとうございます。お礼が遅くなってすいません。
案1は、シートにフォーマットが定めれれており不可。
案2は、私も考えましたが保留中です(部署名もころころ変わりメンテナンス面から難)。
案4は、上司からコピペ作業は避けるよう言われているため、各シートにダイレクトに出力できるよう試してみます。
No.3
- 回答日時:
>シート1のデータを更新したら、所属別に分かれたシートの内容も自動的に更新されると
>いうようなことはできるでしょうか?
⇒可能です。
(1)長く判り辛い配列数式⇒処理が重たい、リアル表示が可能
(2)イベント対応マクロ(VBA)⇒マクロ知識が必要、リアル表示が可能
(3)「フィルタオプションの設定」⇒エクセル既存操作で可能、リアル表示できない
お勧めは(3)が容易です、自動反映はできないが如何でしょうか。
回答ありがとうございます。
私も(3)を提案したんですが上司に否決され困っていたところです。
(1)、(2)の具体的方法を教えていただけるとありがたいのですが・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) 更新前と更新後の差分をVBAを使って抜き出したい 5 2023/06/01 14:35
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/09 13:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社のOutlookにてメールを予約...
-
「生産性ソフトウェア」とは何...
-
Microsoft familyに追加されま...
-
Microsoft Formsの「個人情報や...
-
Outlook で宛先が複数の場合の人数
-
エクセルで例えば、A1に㈱ベ...
-
OFFICEで自動保存されたファイ...
-
VLOOKUP関数について
-
Office2021を別のPCにインスト...
-
Excel テーブル内の空白行の削除
-
エクセルでXLOOKUP関数...
-
マクロ自動コピペ 貼り付ける場...
-
会社PCのメールが更新されない
-
WEBの記事を印刷する際にA...
-
エクセルで例えば、関数を使っ...
-
2つのシートの一致する行のセ...
-
【Excel VBA】PDFを作成して,...
-
outlookのメールが固まってしま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
マイクロソフト 一時使用コード...
-
ウィンドウィズ メモ帳で日付だ...
-
MicrosoftOfficeの1ユーザー2...
-
Microsoft Formsの「個人情報や...
-
Officeの字体
-
エクセルでXLOOKUP関数...
-
Microsoft365で自動保存が出来...
-
Outlookで、任意のメールアドレ...
-
outlookのメールが固まってしま...
-
Microsoft 365 の一般法人向け...
-
Office2021を別のPCにインスト...
-
Microsoft 365のディフェンダー...
-
Excelに貼ったリンクについて E...
-
MicrosoftOffice2019なんですが、
-
Outlook で宛先が複数の場合の人数
おすすめ情報