[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数の別シートから特定条件で一シートに集約したい』(うい)
<個人シート>(佐藤)
A B C
井上 佐藤 承認
伊藤 佐藤 否認
佐藤 佐藤 不要
<個人シート>(鈴木)
A B C
井上 鈴木 承認
伊藤 鈴木 承認
鈴木 鈴木 不要
<全体シート>
A B C
井上 佐藤 承認
伊藤 佐藤 否認
井上 鈴木 承認
伊藤 鈴木 承認
個人シートを編集すると全体シートに追加や変更がされるようにしたいです。
もともとは全体を編集したら個人に反映されるようにするものでしたが、変更になってしまい行き詰ってしまいました。
+++++++++++++++++++++++++++++++++++++
=IF(COUNTIF(全体!$B:$B,$A$1)>=ROW(A9),INDEX(全体!A:A,LARGE(INDEX((全体!$B$1:$B$500=$A$1)*ROW(全体!$B$1:$B$500),),COUNTIF(全体!$B:$B,$A$1)-ROW(A9)+1)),"")
(全体→個人だったときに記述した関数)
+++++++++++++++++++++++++++++++++++++
変更後の抽出する条件が「A列≠B列」の場合です。
追加の順番は順不同で構いません。
まず無理を承知で、できれば関数を入れておいて入力のたびに変更されるようにしたいです。
理由としては、複数の人間が編集するものなので、なるべく手順を減らしたいからです。
関数が無理となるとVBAでの実装となるとは思いますが、その場合でも毎回実行をしなくても、入力や保存のタイミングで勝手に反映されてほしいです。
ご助力願います。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
素直に、全体シートを見たいときにマクロを実行し、一覧シートを全更新しましょう。(ボタンを置かなくとも、シートがアクティブになった際に動作すれば、誰でも使えるかと思います)
(???) 2018/05/17(木) 17:26
自分でも無理を言っていることは理解していたのですが、何か参考になればと思い投稿させていただきました。
おっしゃるとおり、関数で対応するのは厳しいと思いますので、素直に別の方法を模索します。
改めてありがとうございました。
(うい) 2018/05/18(金) 11:50
別で集約シートを作ってそこに全データを入れておく。
後は今までの要領で個人シートと抜出シートを作っておけばいいのでは? 集約シートに作業列を作って、A列<>B列でTRUE・FALSEを出しておき 抜出シートはTRUEのデータだけを抜き出せばいいと思いますけど。 データ数がわからないので重くなるかもしれませんが。
(コナミ) 2018/05/18(金) 12:47
Private Sub Worksheet_Activate() Dim i As Long Dim j As Long Dim iR As Long
Application.ScreenUpdating = False Me.Cells.Delete
For i = 1 To Sheets.Count If Sheets(i).Name <> Me.Name Then With Sheets(i) For j = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(j, "A").Value <> .Cells(j, "B").Value Then iR = iR + 1 .Rows(j).Copy Me.Cells(iR, "A") End If Next j End With End If Next i
Application.ScreenUpdating = True End Sub (???) 2018/05/18(金) 13:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.