[[20170815161143]] 『dictionaryでは重複削除されてしまう』(まさこ) ページの最後に飛ぶ

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

 

『dictionaryでは重複削除されてしまう』(まさこ)

投稿
[[20170804215608]] 『複数条件のカウントを転帰 日付が変わると転帰場』(まさこ) 
について...

前回質問させて頂いた時には、想定していなかった事が分かりました。
dictionay の特徴として、重複を削除してくれることだと思うのですが、BCDのブックの複数のシートのC列には、氏名が重複する場合が存在していることが分かりました。
しかし、B&Cとすることでユニーク値となります。

そこで、今回のご要望としましては、、
☆☆ブックBCDにある、それぞれの複数のシートのB7:D列の最終行までをコピーして、氏名一覧シートにA1に累積して貼り付けたいです☆☆

*ブックBCDの複数のシートのC列には氏名が重複する事があり、重複を削除しないまま、ブックAの氏名一覧シートに貼り付けを行いたいです。
B7とC7を対にして考えると(B8とC8、B9とC9、・・・B最終行とC最終行のようなイメージ)、BCDの複数のシートには同一の文字列は存在しなくなります。

そうすると、稲葉様から頂いたコードから、split関数を使用することで、dictionaryを使用したまま作業の自動化を実現できそうだと考えました(凄く初心者なのですごく的外れの事を言っちゃってるかもしれませんが、その時は勘弁して下さい)。

稲葉様から頂いた素敵なコードでは、dintionayを使用して、ブックBCDの複数あるシートにあるC7から最終行までを、氏名一覧ソートのA1に書き出すことだと認識しております(一度辞書に登録して後に書き出し)。

以下がその時の素敵なコードです。(稲葉) 2017/08/07(月) 13:38

   Option Explicit

    Sub 氏名一覧作成()
        '//[必須]ツール>参照設定>Microsoft ScriptingRuntime
        '//[必須]ブックAの氏名一覧を書き出したいシートモジュールに貼り付ける
        Me.Activate 'シートモジュール以外だとエラーになる

        Dim WBb(2) As Workbook
        Set WBb(0) = Workbooks("B.xlsm")
        Set WBb(1) = Workbooks("C.xlsm")
        Set WBb(2) = Workbooks("D.xlsm")
        'ブックを開いていないとエラーになる

        Dim dic As Dictionary
        Set dic = New Dictionary

        Dim i As Long
        Dim sh As Worksheet
        Dim r As Long
        For i = 0 To UBound(WBb, 1)
            For Each sh In WBb(i).Sheets
                For r = 7 To sh.Cells(Rows.Count, "C").End(xlUp).Row       '7行目から最後の行まで
                    dic(sh.Cells(r, "C").Value) = ""
                Next r
            Next sh
        Next i
        Me.Cells.ClearContents
        Me.Range("A1").Resize(dic.Count).Value = Application.Transpose(dic.Keys)
        Set dic = Nothing
    End Sub

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


あたためてシートのサンプルを説明してください。
前回のスレッドの質問とは、まるで違う内容のシートにみえます。
  
あとから、ああそうでした、それはこういう事でした、
といった修正が無いように、正確に問題を提示してください。
 
単にコピーするだけでよいのか、途中の空白行があればそれは除くのか 等々。
つまり前回の説明を読まなくても済むよう、
まとめて説明してください。
 
重複を除くためにDictionaryを使ったようですが、
今回は、単に領域のコピーだけで済むなら、基本的な動作ですよね。
どのあたりに詰まっているのですか?
その詰まっているところを説明してください。
 
コード作ってぇ、ということなんですか?

(γ) 2017/08/15(火) 20:53


 私か書いたものは、
 条件付き書式を使う場合に、氏名がない場合色をつけたい
 という要望から、氏名の一覧を作り、あとは自分で考えて
 としたものです

 で、名前がない人を探す目的に作られたコードなわけで、
 重複がいようがいまいが関係ないはずですが?

 仕様が違うなら私のコードを使用しないでください
 余計混乱します

 今回は申し訳ないですが、家族サービス中につき対応できかねます

(稲葉) 2017/08/15(火) 22:07


γ様 返信ありがとうございます。コード書いてぇと思う気持ちと自分でコード書きたいと思う気持ちが半分半分みたいな感じです。コードを調べながら書いて動かしてはいるものの、何が分からないか分からなくなるくらい、出来なくて情けない状況ですので、ここで教えて頂くレベルにもなく、申し訳ないなと思う気持ちもあります。

稲葉様 前回素敵なコードを作成して頂き感謝しております。条件付き書式を使う為の仕様で使わせて頂いております。今回は仕様が違う為、混乱させてしまい申し訳ありませんでした。

→一旦、このスレを取り下げさせて頂きます。再度新しく掲示させて頂きます。

(まさこ) 2017/08/15(火) 22:34


コードを調べながら書いて動かしてはいるものの、何が分からないか分からなくなるくらい、 出来なくて情けない状況

結局、単語の意味を調べるのに精いっぱいで、
論理的に欲しい結果が得られる方法論が確立されてないから、
難儀してるんだと思います。

今回も前回もディクショナリーに頼らなくとも解決できるように、
エクセルの機能で分析処理しやすい形にデータを成形しなおしてやれば、
フィルターやピボットテーブルあるいは、重複の削除など、
エクセルに頼れるので少し楽かなぁと思いますが。。。。
(まっつわん) 2017/08/16(水) 06:48


コメント返信:

[ 一覧(最新更新順) ]


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