我已经命名了一个单元格,但我经常忘记哪个单元格是主单元格,所以我试图在它旁边贴一个标签。 我想返回相邻列中的单元格名称。
即
单元格 A1 的值为 2,并已命名为“Box”
在单元格 B1 中,我想要一个函数 =Whatiscellname(A1) ,答案将是“box”
我怀疑如果单元格位于多个命名范围中,这可能会变得棘手,但为了简单起见,我们可以假装我们只查找单个单元格的命名范围。 即我们可以忽略单元格 (A1:A5) 的命名范围框
感谢堆团队。
我尝试了一些谷歌。
发现这个脚本似乎更先进,因为它正在检查一个值是否在一个范围内。 但我会诚实地说,这个逻辑超出了我的理解范围。
此模式中的模式 2 返回基于单元格的命名范围的名称?
您想要一个公式来显示给定单元格中 NamedRange 的名称。
Google 表格没有可以执行此操作的本机公式,但可以使用自定义函数来完成。
输入公式为
whatIsCellName("A1")
/**
* 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
}
}
}
样品