[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『キーワード別得点振り分け(データセットの変換)』(POM)
下記のようなデータセットです。
A B C D E F
746 犬 牛 鳥 羊 狐 . . .
425 犬 鳥 牛 鼠 虎 . . .
392 虎 牛 狐 羊 鼠 . . .
291 龍 犬 虎 羊 鳥 . . .
842 牛 鼠 羊 狐 鳥 . . .
445 犬 羊 狐 鳥 牛 . . .
. . . . . . . . . . . .
Aに得点、各rowにその得点を持つ値が入っています。
このデータセットから共通の値を同一column に入れ、各得点を縦に入れていくことは可能でしょうか。
下記のようなイメージです。
A B C D E F G H
犬 牛 鳥 羊 狐 虎 鼠 龍
746 746 746 746 746 425 425 291
425 425 425 392 392 392 392
291 392 291 291 842 291 842
445 842 842 842 445
値と数値はあくまで、仮置きのものとなります。実際のデータセットは、columns,rowsともにより大きなものとなっています。
不明点等、多々あるかと思われます。
随時指摘していただけますと幸いです。
ご教授お願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
マクロでやりたいってことですよね?
自分ではどこまでできます?
まったくVBAを知らない状態ですか?
単にできるサンプルをもらえたら、それを見て
傾向と対策で何とかなるって思ってるってことですか?
シート上の関数でもそうですが、列や他のシートを使って段階を追って途中経過を書いていくと、
わかりやすくなると思います。
それから、エクセル君の機能を使いやすいようにデータを作れば、
フィルターやピボットテーブルの機能が使えますので、
そちらを使えばその部分は自分で開発する必要がなくなりますので、
労力の省力化ができるかも知れません。
その辺を考慮して作業手順を考えたら、
比較的簡単にマクロ化ができるかも知れません。
(まっつわん) 2017/10/15(日) 18:06
そうです、マクロでやりたいと思っております。
基本的なマクロの操作はわかります。
vlookやcountif、matchなどの関数を利用するのかと思いましたが、できなかったため、詳しい方へ伺うことができればと思い書き込んでおります。
(POM) 2017/10/15(日) 18:42
(マナ) 2017/10/15(日) 19:40
(POM) 2017/10/15(日) 21:03
初めてだと無理かと思います(特に今回は)。
でも、一度理解できると
不思議と簡単に使えちゃいます。
今回のケースでもDictionaryだと簡単なので
わたしは、他の方法で考える気になりません。
Option Explicit
Sub test() Dim dic As Object Dim r As Range Dim i As Long, j As Long Dim p As Long, s As String Dim k Dim n As Long
Set dic = CreateObject("scripting.dictionary") Set r = Cells(1).CurrentRegion
For i = 1 To r.Rows.Count p = Cells(i, 1).Value For j = 2 To r.Columns.Count s = Cells(i, j).Value If s = "" Then Exit For If Not dic.exists(s) Then Set dic(s) = CreateObject("scripting.dictionary") dic(s)(s) = True End If dic(s)(p) = True Next Next
Worksheets.Add For Each k In dic n = n + 1 Cells(1, n).Resize(dic(k).Count).Value = Application.Transpose(dic(k).keys) Next
End Sub
(マナ) 2017/10/15(日) 21:21
(マナ) 2017/10/15(日) 21:30
コメントいただきました皆様ありがとうございます。
(POM) 2017/10/15(日) 23:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.