
收到粉丝提问:EXCEL怎么获取区域内每个单元格对应的 行,列信息数据?如图,就是把右侧人员的宿舍号,床位号生成出来。

在 Excel 中,获取区域内每个单元格对应的行和列信息,我们可以使用函数公式来实现。具体操作步骤如下:
1、获取宿舍号
在 M2 单元格中输入以下公式来获取姓名对应的宿舍号:
=INDEX($A$2:$A$18,TEXTJOIN("、",1,IF($B$2:$I$18=L2,ROW(B$2:I$18)-1,"")))
公式释义:
(1)TEXTJOIN("、", 1, ...): TEXTJOIN 是用来连接文本字符串的函数,"、" 是分隔符,参数 1 表示忽略空值。通过TEXTJOIN 函数会将 IF 函数返回的结果用 "、" 连接成一个字符串。
(2)IF($B$2:$I$18=L2, ROW($B$2:$I$18)-1, ""): 借助IF 函数检查 B2:I18 区域中的每个单元格是否等于 L2 单元格中的名字。
如果匹配,则 ROW($B$2:$I$18)-1 返回对应行号(减去 1 以匹配数组的实际索引)。如果不匹配,则返回空字符串 ""。
(3)ROW($B$2:$I$18)-1: ROW($B$2:$I$18) 返回每个单元格的行号,减去 1 是为了调整行号,使其与 INDEX 函数中的实际索引一致。
(4)INDEX($A$2:$A$18, ...): INDEX 函数根据TEXTJOIN 生成的行号来从 A2:A18 区域中提取对应的宿舍号。

2、获取床号
在 N2 单元格中输入以下公式来获取姓名对应的床号:
=INDEX($B$1:$I$1,TEXTJOIN("、",1,IF($B$2:$I$18=L2,COLUMN(B$2:I$18)-1,"")))
公式释义:
(1)TEXTJOIN("、", 1, ...): TEXTJOIN 是用来连接文本字符串的函数,"、" 是分隔符,参数 1 表示忽略空值。通过TEXTJOIN 函数会将 IF 函数返回的结果用 "、" 连接成一个字符串。
(2)IF($B$2:$I$18=L2,COLUMN(B$2:I$18)-1, ""): 借助IF 函数检查 B2:I18 区域中的每个单元格是否等于 L2 单元格中的名字。
如果匹配,则 COLUMN(B$2:I$18)-1 返回对应列号(减去 1 以匹配数组的实际索引)。如果不匹配,则返回空字符串 ""。
(3)COLUMN(B$2:I$18)-1: COLUMN(B$2:I$18) 返回每个单元格的列号,减去 1 是为了调整列号,使其与 INDEX 函数中的实际索引一致。
(4)INDEX($B$1:$I$1, ...): INDEX 函数根据TEXTJOIN 生成的列号来从 B1:I1 区域中提取对应的床号。

通过使用合理运用函数,我们可以快速获取区域内每个单元格对应的行和列信息。
根据实际数据范围调整公式中的区域引用,可以适应不同的数据表格布局。如果还有疑问或需要更多帮助,欢迎留言哦~
想了解更多精彩内容,快来关注