Google 表格 - 返回单元格名称

问题描述 投票:0回答:1

我已经命名了一个单元格,但我经常忘记哪个单元格是主单元格,所以我试图在它旁边贴一个标签。 我想返回相邻列中的单元格名称。

单元格 A1 的值为 2,并已命名为“Box”

在单元格 B1 中,我想要一个函数 =Whatiscellname(A1) ,答案将是“box”

我怀疑如果单元格位于多个命名范围中,这可能会变得棘手,但为了简单起见,我们可以假装我们只查找单个单元格的命名范围。 即我们可以忽略单元格 (A1:A5) 的命名范围框

感谢堆团队。

我尝试了一些谷歌。

发现这个脚本似乎更先进,因为它正在检查一个值是否在一个范围内。 但我会诚实地说,这个逻辑超出了我的理解范围。

此模式中的模式 2 返回基于单元格的命名范围的名称?

google-sheets named-ranges
1个回答
0
投票

您想要一个公式来显示给定单元格中 NamedRange 的名称。

Google 表格没有可以执行此操作的本机公式,但可以使用自定义函数来完成。

输入公式为

whatIsCellName("A1")

  • 其中单元格 A1 是您想要了解其 NamedRange 的单元格
  • 注意:单元格地址必须以字符串形式输入

/**
 * Displays The NamedRange name of the referenced cell
 *
 * @param {Array<Array<number>>} input The range to match
 * @return The NamedRange name
 * @customfunction
 */
function whatIsCellName(input) {
 
  if (typeof input !== "string"){
    throw new Error( "Cell reference must be enclosed in quotes." );
  }
  var sheet = SpreadsheetApp.getActiveSheet()
  var range = sheet.getRange(input)
  Logger.log("DEBUG: range = "+range.getA1Notation())
  var nranges = sheet.getNamedRanges()
  
  for (var i=0;i<nranges.length;i++){
    if (input != nranges[i].getRange().getA1Notation()){
      // no match, do nothing
      Logger.log("DEBUG: No match for "+input)
    }
    else{
      Logger.log("DEBUG: Matched "+input)
      return nranges[i].getName()
      break
    }
  }
}

样品

© www.soinside.com 2019 - 2024. All rights reserved.