Я пытался решить эту проблему в течение недели, но не смог найти правильный способ сделать это.
Как показанона изображении выше, у меня есть список данных. Столбец A - это идентификатор группы, Столбец B - это подгруппа, и в столбце C есть проценты.
Моя цель - найти A: 1117, цикл в «theSameTitle», суммировать проценты и, если они превышают 10%, Я буду отображать общий процент или некоторый текст в столбце D. Дело в том, что я также хочу объединить соответствующие строки вдоль «суммированного блока». В случае 1117: theSametitle я бы слил 3 строки в столбце D. Это «объединение» для целей отчетности.
Пока я могу найти 1117: theSameTitle и суммировать его, но не могу понять, какопределить, какие строки задействованы для их объединения. Вот код, который я придумал:
Sub determinePercentages()
' Select cell A1, *first line of data*.
Range("A1").Select
' Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
' Insert your code here.
nextCell = ActiveCell.Offset(1, 0).Value
'nextCell2 = ActiveCell.Offset(1, 3).Value
If Range("C" & ActiveCell.Row) > 0.1 Then
'MsgBox (Range("C" & ActiveCell.Row).Value)
Range("E" & ActiveCell.Row).Value = "YES"
End If
'If ActiveCell & ActiveCell.Offset(0, 3) <> nextCell & nextCell2 Then
curSumIfs = Application.WorksheetFunction.SumIfs(Range("C:C"), Range("A:A"), ActiveCell.Value, Range("B:B"), ActiveCell.Offset(0, 3).Value)
If curSumIfs >= 0.1 Then
ActiveCell.Offset(0, 10).Value = curSumIfs
End If
'End If
' Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Я также довольно новичок в VBA и Excel. Я не знаю, насколько эффективен мой код. Может быть, есть гораздо лучший способ реализовать это.
Мне нужна ваша помощь:)