Как отметил Дмитрий, вы можете добавить дополнительную строку вверху и использовать ее для инициализации аккумулятора в нуле. Каждый раз, когда вы сталкиваетесь с непустой ячейкой, вы можете увеличивать предыдущее значение на 1.

Причина, по которой я не проверял ложь, заключается в том, что ложь немного сложнее. Если бы вы использовали ИСТИНА вместо ЛОЖЬ, ваша формула для строки 2 (далее) будет:
=$C1+IF($A2=TRUE,1,0)
В настоящее время у меня нет доступа к Excel, чтобы написать скрипт VB, но я написал простой скрипт Google для заполнения идентификаторов. Я уверен, что вы можете сделать что-то очень похожее в VB.
Пример данных
Group Name ID <-- Add third column
FALSE abc
def
FALSE mpla
xyz
Вы можете выполнить скрипт для запуска по листу и заполнения столбца идентификатора.
function autoAassignGroupId() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(),
rangeData = sheet.getDataRange(),
lastColumn = rangeData.getLastColumn(),
lastRow = rangeData.getLastRow(),
searchRange = sheet.getRange(2, 1, lastRow-1, lastColumn-1),
rangeValues = searchRange.getValues(),
auto_index = 0;
for (row = 0 ; row < lastRow - 1; row++) {
if (rangeValues[row][0] === false) auto_index++;
sheet.getRange(row + 2, lastColumn).setValue(auto_index);
}
}