[[20180517100202]] 『複数の別シートから特定条件で一シートに集約した』(うい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数の別シートから特定条件で一シートに集約したい』(うい)

<個人シート>(佐藤)
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 >


回答付かないようですが、かなり無茶な考え方だからかと思います。一覧化したあと、一人目に追記されて該当2行が3行に増えたとき、全体シートは2人目のデータが1行ずれるのですか? 式を埋め込んだセルの数分、毎回全部再計算されてしまいますよ? それに、人数固定ならまだ判りますが、きっとシート数も増減しますよね? 数式対応は難しいと思います。

素直に、全体シートを見たいときにマクロを実行し、一覧シートを全更新しましょう。(ボタンを置かなくとも、シートがアクティブになった際に動作すれば、誰でも使えるかと思います)
(???) 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.