自动递增属于同一组值的行

时间:2019-01-25 11:39:52

标签: excel

在一栏中,我有一些像这样的值:

count = "${length(split(',', azurerm_app_service.backend.outbound_ip_addresses))}"

并且我需要从每个错误行中获取所有行,直到下一个错误值为止, 在一个组中,该组将自动递增:

|------------|----------------|
|    false   | abc            |
|            | def            |
|    false   | mpla           |
|            | xyz            |
|-----------------------------|

我应该尝试使用哪个Excel公式?

3 个答案:

答案 0 :(得分:0)

在数据前增加一行(行1),然后将公式=C1+IF(A2="false";1;0)放入第三列(C)。

答案 1 :(得分:0)

正如德米特里(Dmitry)所述,您可以在顶部添加另一行,并使用它来将累加器初始化为零。每次遇到非空白单元格时,都可以将前一个值增加1。

Spreadsheet

我之所以没有检查错误,是因为错误有点棘手。如果您使用TRUE而不是FALSE,那么第2行(向前)的公式将是:

=$C1+IF($A2=TRUE,1,0)

目前我无法访问Excel来编写VB脚本,但是我编写了一个简单的Google脚本来填充ID。我相信您可以在VB中执行类似的操作。

样本数据

Group   Name    ID <-- Add third column
FALSE   abc
        def
FALSE   mpla
        xyz

您可以执行脚本以遍历工作表并填写ID列。

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);
  }
}

答案 2 :(得分:0)

仅需注意一点,没有任何帮助行:=COUNTIF(INDIRECT("A1:A"&ROW(A1));FALSE)。以为我会把它放在那里:)

很明显,如果您的列a包含纯文本,它将变为:=COUNTIF(INDIRECT("A1:A"&ROW(A1));"FALSE")