如何用ARRAYFORMULA定位空白单元格的行号与列名?
Google Sheets 空白单元格定位公式修改方案
问题场景
我在Google Sheets中有L、M两列,范围为第4至第9行。现需检查这些列下的单元格是否为空,若为空则显示该空白单元格的行号与列名(例如:若第6行L列单元格为空,输出应为“Row: 6, Column: L is blank”)。我使用了公式:
=ARRAYFORMULA(IF(ISBLANK(L5:L8)=TRUE,CONCATENATE("ROW: ",ROW(L5:M8)," COL: ",SUBSTITUTE(ADDRESS(3,COLUMN(L5:M8),4),"3",""),""))但该公式将所有结果显示在单个单元格中,期望输出应为每行对应空白单元格的信息,如:
Row: 5, Col : L
Row 5, Col : M
请问如何修改公式以得到预期结果?
问题原因
原公式的核心问题:
- 使用
CONCATENATE会直接合并数组结果为单个文本,无法保留每行独立输出; ISBLANK(L5:L8)仅覆盖L列,和后续引用的L5:M8范围不匹配,逻辑错位。
修改后的公式
方案1:在原空白单元格位置输出提示
这个公式会在对应空白单元格的位置显示提示文本,非空白单元格留空:
=ARRAYFORMULA(IF(ISBLANK(L4:M9),"Row: "&ROW(L4:M9)&", Column: "&SUBSTITUTE(ADDRESS(1,COLUMN(L4:M9),4),"1","")&" is blank",""))
方案2:所有提示单独成行排列
如果希望把所有空白单元格的提示提取出来,从上到下依次排列(自动过滤空值),用这个公式:
=FILTER(FLATTEN(ARRAYFORMULA(IF(ISBLANK(L4:M9),"Row: "&ROW(L4:M9)&", Column: "&SUBSTITUTE(ADDRESS(1,COLUMN(L4:M9),4),"1","")&" is blank",""))),FLATTEN(ARRAYFORMULA(IF(ISBLANK(L4:M9),"Row: "&ROW(L4:M9)&", Column: "&SUBSTITUTE(ADDRESS(1,COLUMN(L4:M9),4),"1","")&" is blank","")))<>"")
公式说明
ISBLANK(L4:M9):检查目标区域(L4到M9)的每个单元格是否为空;ROW(L4:M9)/COLUMN(L4:M9):获取单元格对应的行号和列号;SUBSTITUTE(ADDRESS(1,COLUMN(L4:M9),4),"1",""):将列号转换为列名(如列号12转为L);- 方案1保持原单元格位置对应关系,方案2将所有有效提示汇总成列表。
内容的提问来源于stack exchange,提问作者alittlecurryhot
相关产品推荐
相关产品推荐

