▽1
●
きゃづみぃ ●90ポイント ![]() |
Sub main() 'コード、性別でソートされているのを条件として実行します。 '1行もないとき If Cells(2, "B") = "" Then Exit Sub End If '初期値のセット c1 = Cells(2, "B") c2 = Cells(2, "C") d = Cells(2, "I") '1行しかないとき If Cells(3, "B") = "" Then If c2 = "男" Then Cells(2, "D") = d Else Cells(2, "F") = d End If Exit Sub End If d = 0 For a = 2 To Cells(2, "B").End(xlDown).Row If Cells(a, "B") <> c1 Or Cells(a, "C") <> c2 Then If c2 = "男" Then Cells(a - 1, "D") = d Else Cells(a - 1, "F") = d End If d = 0 End If c1 = Cells(a, "B") c2 = Cells(a, "C") d = Cells(a, "I") + d Next a If c2 = "男" Then Cells(a - 1, "D") = d Else Cells(a - 1, "F") = d End If End Sub
変更しました。
そうですねやはり答えの行は番組の最後の行で男女おなじ位置が良いですね
男女の区別は列で分けていますので
変更ができましたら
答えの行のA列にB列の答えの行のIDと同じものをコピーできたらよいのですが
関数だけで行う例
・質問文では5行分だけだったので最下行は5としていますが、実際には100行あるということであれば5の部分を全て100にするか、あるいはもっと大きな数値にしておく
・3行目以下は2行目をコピーすればいい
D2 =IF($B2=$B3,"",SUMPRODUCT(($C$2:$C$5="男")*($B$2:$B$5=$B2),$I$2:$I$5)) F2 =IF($B2=$B3,"",SUMPRODUCT(($C$2:$C$5="女")*($B$2:$B$5=$B2),$I$2:$I$5))
windofjulyさん
やってみたのですが上手く行かなかったです。