[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『統計』(にっちゃん)
初めまして。
学校で人気投票をしています。ひとり3票まで投票可能で、相互票は無効なアンケートを集計しています。
a行に名前c行に総獲得数d行に有効票e行に無効票とそれぞれ合計を出したいのですが、有効票(相互票を除いたもの)の簡単な出し方を教えていただけませんでしょうか?
いまある形は
a行に名前(仮にa君とします) c行総獲得数 d行に有効票e行に無効票 f・g・hにその人が投票した人名を入力しています。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows8 >
Dim dt(), u As Long With ActiveSheet u = .UsedRange.Columns(1).Cells.Count ReDim dt(u, u) For i = 1 To u For j = 6 To 8 dt(i, conv(.Cells(i, j))) = True Next j Next i For i = 1 To u For j = 6 To 8 If dt(i, conv(.Cells(i, j))) = True And dt(conv(.Cells(i, j)), i) = True Then .Cells(i, 5) = Val(.Cells(i, 5)) + 1: .Cells(i, j).Font.Color = vbRed End If Next j Next i End With End Sub Function conv(arg) On Error Resume Next '1行目が表題の場合必要 conv = Application.WorksheetFunction.Match(arg, ActiveSheet.Columns("A"), 0) End Function (mm) 2016/04/27(水) 16:40
自分自身への投票はないものとする。
1行目が見出し行で2行目からデータがあるものとする。
総獲得票(C2セル) =COUNTIF(F$2:H$100,A2)
有効票(D2セル) =SUMPRODUCT((A$2:A$100<>F2)*(A$2:A$100<>G2)*(A$2:A$100<>H2)*(A$2:A$100<>"")*(F$2:H$100=A2))
無効票(E2セル) =C2-D2
と入力してC2セルからE2セルを下へフィルコピーしてみてくれ。
なお上記の式ではデータの最大行数を100行目までとしている。 もっとある場合は式中の「$100」部分をすべて同じ値で大きくしてくれ。
あと、テストのほうもきちんとおこなってくれ。
追記 有効票の (A$2:A$100<>"") 部分はいらなかったな。 D2セルの式は =SUMPRODUCT((A$2:A$100<>F2)*(A$2:A$100<>G2)*(A$2:A$100<>H2)*(F$2:H$100=A2)) としてくれ。 (ねむねむ) 2016/04/27(水) 16:44
あるいは
有効票(D2セル) =C2-E2
無効票(E2セル) =SUMPRODUCT(((A$2:A$100=F2)+(A$2:A$100=G2)+(A$2:A$100=H2))*(F$2:H$100=A2)) でも。
(ねむねむ) 2016/04/27(水) 17:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.