[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『判別方法』(ys)
A B C
1 A いちご ○
2 A いちご ○
3 B いちご ○
4 B めろん
5 B めろん
6 B りんご ○
7 B りんご ○
8 A りんご ○
9 A もも
10 A もも
この様な表があり、C列に
例えばイチゴグループの中でA列が全て同じであれば
空白、そうでなければ○と判別する関数を入れたいです。
(B列は何百という種類があります。
A列はAとBの二種類しかありません。)
マクロで作成したのですが、3万件以上データがあるので
遅くて使い物になりません。(私のマクロの組み方が悪いのかも・・・・)
関数で判定する方法を教えてください。
よろしくお願いします。
< 使用 Excel:Excel2003、使用 OS:Windows7 >
関数はエキスパートさんにお任せしますが、下記のマクロでも遅いでしょうか。
Sub Sample() Dim datTbl datTbl = Range("A1").Resize(Cells(Rows.Count, "B").End(xlUp).Row, 2)
Dim resTbl resTbl = Range("C1").Resize(UBound(datTbl, 1), 1)
Dim dic Set dic = CreateObject("Scripting.Dictionary")
Dim r As Long For r = 1 To UBound(datTbl, 1) If dic.exists(datTbl(r, 2)) = False Then dic(datTbl(r, 2)) = datTbl(r, 1) Else If dic(datTbl(r, 2)) <> "〇" Then If dic(datTbl(r, 2)) <> datTbl(r, 1) Then dic(datTbl(r, 2)) = "〇" End If End If Next
Dim k For Each k In dic.keys If dic(k) <> "〇" Then dic(k) = "" Next
For r = 1 To UBound(datTbl, 1) resTbl(r, 1) = dic(datTbl(r, 2)) Next
Range("C1").Resize(UBound(datTbl, 1), 1) = resTbl End Sub
(Mook) 2014/09/16(火) 20:39
こんばんは。
エキスパートでなくて恐縮ですが、
=IF(COUNTIF(B$1:$B$10,B1)=SUMPRODUCT((A$1:A$10=A1)*(B$1:B$10=B1)),"","○")
ではどうでしょう。 (mas_k) 2014/09/16(火) 21:05
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.