谷歌表格获取行中第一个和最后一个彩色单元格的地址

撒拉族

我正在创建一个甘特样式表,它是这样的:

在此处输入图片说明

我想开发两个自定义函数来计算 B 和 C 列。这两个函数将以“D2:I2”和 A2 作为输入,然后计算 B2 和 C2。但我不知道如何开发这些功能。
这是我的电子表格的链接。

戈兰克

使用下面的代码并将以下内容添加到工作表的单元格 B2 =get_cells(CELL("address",D2)&":"&CELL("address",I4),COLUMN(A3))

您需要从代码编辑器中运行该函数一次,以接受所需的权限。

// @OnlyCurrentDoc
function get_cells(dataRangeA1, colorsCol ) {
  const dataRange = SpreadsheetApp.getActive().getRange(dataRangeA1)
  const colors = dataRange.getSheet().getRange(dataRange.getRow(), colorsCol,dataRange.getNumRows(),1).getBackgrounds().map(bg=>bg[0])
  const dataColors = dataRange.getBackgrounds()
  
  const row0 = dataRange.getRow()
  const col0 = dataRange.getColumn()
  const result = dataColors.map((colorsRow, irow)=>{
    const colorToSearch = colors[irow]
    let iFirst = undefined
    let iLast = undefined
    for(let i=0; i<colorsRow.length; i+=1){
      if(colorsRow[i]===colorToSearch){
        if(iFirst==undefined){
          iFirst = i
        }
        iLast = i
      }
    }
    return [columnToLetter(col0+iFirst)+(row0+irow), columnToLetter(col0+iLast)+(row0+irow)]
  })
  return result
}


 function columnToLetter(col){
    if (col < 1 || col > 18278) {
      throw new Error('column must be in [0, 18278]')
    }
    let temp
    let letter = ''
    let column = col
    while (column > 0) {
      temp = (column - 1) % 26
      letter = String.fromCharCode(temp + 65) + letter
      column = (column - temp - 1) / 26
    }
    return letter
}

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel:获取行中第一个和最后一个非零单元格的位置

谷歌表格获取行中的最后一个非空单元格

标识UITableView中的最后一个和第一个单元格

谷歌表通过具有第一个单元格地址和长度来获取范围

获取Excel表中第一个单元格的行和列号

从停产范围的第一个和最后一个单元格地址中提取

从最后一行熊猫数据框中获取第一个单元格

根据第一个和最后一个单元格的值隐藏行

Excel:在表格中查找匹配单元格并返回行中第一个单元格的值

根据表格中每行的第一个单元格锁定行中的单元格范围

在 UITableView 中滚动时第一个和最后一个单元格更改颜色

获取表中每一行的第一个单元格值

如何从用户悬停的行中获取第一个单元格?

Excel:使用值查找第一个和最后一个单元格的地址(中间有空格)

表格视图单元格重新加载第一个单元格的内容

第一个单元格比其他单元格宽的表格

在第一个单元格悬停时覆盖表格单元格

向UICollectionView的第一个和最后一个单元格添加填充

如何为UItableView的Section的第一个和最后一个单元格设置圆角

如何选择过滤表的第一个和最后一个单元格?

明天的第一个值出现在今天行的最后一个单元格上

Excel表格中第一个单元格的位置

Excel VBA:如何在表的最后一行的第一个单元格中粘贴一个值?

在一行中的文本之后找到第一个空单元格

如何找到一行中第一个空单元格的列名?

获取Google表格中列中的最后一个非空单元格

具有自定义单元格的TableView重复第一个和最后一个单元格包含的图像

根据 Google 表格中的第一个单元格格式化列中的单元格

查找行中最后使用的单元格的范围,计算距离和偏移量以显示找到的范围列中第一个单元格的单元格内容