[[20150326155222]] 『複数シートの中から該当する数字のみ抽出したい』(まぁ) ページの最後に飛ぶ

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

 

『複数シートの中から該当する数字のみ抽出したい』(まぁ)

おせわになります。

シート1

    A   B   C   D
 1
 2              5
 3
 4
 5
シート2
    A   B   C   D
 1
 2              
 3
 4
 5
シート3
    A   B   C   D
 1
 2              35
 3
 4
 5
シート4
    A   B   C   D
 1
 2              80
 3
 4
 5

1つのエクセルには、シート60くらいあります。
そのうちD2に入っている数値で、シート60に一番近いシートのD2の数値のみ、
別シートに拾い出したいです。別シート「管理表」を作り、その書き出し場所もD2。

100人ほど使用しているエクセルのため、エクセルブックだけでも100個くらいになってしまい、1つずつ開けて、入力されたシートの最終が何シート目なのか、見ていくのが大変なためです。
人によっては、D2の入力がシート40くらいが最終の方もいれば、
日々何かの更新でシート60の最後のシートのD2に入力がある方もいます。
途中のシートの数値は無視し、あくまでもシート60に一番近いシートに入力のあるD2の数値のみ拾いたいです。
上記で言ったら、シート4の「80」のみ拾うという感じです。

シート60に一番近いシートのD2の数値のみ、別シートに表記するための、数式があったら教えてください。

当方、エクセル不慣れなため説明下手で申し訳ありませんが、よろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


数式だと、100ブック*60シートと連結するブックになって、まともに開けない遅さになりませんか?
どうみてもVBAマクロで実現すべきと思うのですが…。60シートだって、その数は前後しているのですよね?

それに、最大値だけでいいのですか? どのブックの、どのシートにあったかは知らなくて良い?
(???) 2015/03/26(木) 17:00


言葉足らずですみません。
1ブックずつ「管理表」というシートを設けてあり、
そこには、入力者氏名及び、入力者の通し番号も記載してあります。
その管理表を紙ベースで印刷し、保管しています。

1ブックに60シートは固定です。
なので、管理表のD2へ60シートの中で60シートに一番近い入力があるD2の数が落ちてきていれば、大丈夫なのです。

マクロは開いてみたものの、何をどこにどう入れるのか、ちんぷんかんぷんでした(T_T)/~
(まぁ) 2015/03/26(木) 17:35


1ブック内のシートを調べ、なるべく後ろのシートにデータがあるものを抜き出せば良い、ということでしょうか。
管理表シートのシートモジュールに記述するマクロ例。

 Sub test()
    Dim i As Long

    For i = Sheets.Count To 1 Step -1
        If Sheets(i).Name <> "管理表" Then
            If Sheets(i).Range("D2") <> "" Then
                Range("A1") = Sheets(i).Range("D2")
                Exit For
            End If
        End If
    Next i
 End Sub
(???) 2015/03/26(木) 18:02

返信が遅くなりまして申し訳ありません。
やはり、マクロなのですね^_^;
当方、マクロちんぷんかんぷんなため、他の方にやってもらったところ、自分の思い通りのデータが
でてきました。
大変参考になりました。

ありがとうございました。

(まぁ) 2015/04/03(金) 10:01


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.