Matt Alexander Asked: 2019-08-28 20:24:59 +0800 CST2019-08-28 20:24:59 +0800 CST 2019-08-28 20:24:59 +0800 CST 通过按值选择按行自动填充单元格 772 我有一张名为“worlds”的表格,然后是用于跟踪在线游戏的各个派系的大量表格。 每个派系表(例如“LC”、“DC”等)都有一个派系控制的世界列表。世界名称从单元格 I9 向下输入。派系代码(LC、DC 等)放置在 I7 单元格中。 在世界表中,每个世界名称列在 B 列(从 B2 向下),控制派系代码在 E 列(从 E2 向下)。 我想做的是让派系表查找并根据派系表中的代码从世界表中列出世界,然后从单元 I9 向下级联,而无需手动输入名称。 是否有可能做到这一点? 感谢您提供的任何帮助。 索引的派系选项卡 世界选项卡错误 microsoft-excel 1 个回答 Voted Best Answer Snolanda 2019-08-31T10:16:27+08:002019-08-31T10:16:27+08:00 对的,这是可能的 但是,您必须从一个派系到另一个派系清理一些小事情。 如果你不特别关心它是如何工作的,这里是工作公式 =INDEX(Worlds!$B$2:$B$999,AGGREGATE(15,6,ROW(Worlds!$B$2:$B$999)/(Worlds!$E$2:$E$999="LC"),ROW( )-8)-1) 将 $B$999 和 $E$999 的任何实例替换为您在 World's 表中总共拥有的行数。如果您的数据仅下降到第 170 行,则应该是 $B$170 和 $E$170。 也将“LC”替换为您想让公式适用的任何派系。 最后将 ROW()-8 中的 8 更改为您在 -1 中开始公式的行号。如果您的下一个派系从第 22 行开始,则 8 应更改为 21。 现在解释 该公式通过创建一个真正的 False 数组起作用 聚合(15, 表示我们要使用 Small 函数。Small 将检索符合我们想要的标准的最小值。(或者在这种情况下是第一个 TRUE 值) 聚合(15,6 表示我们要忽略除以零错误的信号,这将是相当多的。 聚合(15,6,行(世界!$B$2:$B$999 创建一系列数字 2-我们数据集的长度 聚合(15,6,ROW(WORLDS!$B$2:$B$999)/(Worlds!$E$2:$E$999="LC) 现在我们已经说过我们想要将我们的数字数组除以条件。Worlds E2-E999 是我们获取派系信息的地方,我们要求 Excel 获取该范围内的所有值并返回 TRUE/FALSE。如果派系是“LC”则为真,否则为假。这是一个巧妙的技巧,EXCEL 将 TRUE/FALSE 值视为 1 和 0。通过将我们的初始数字数组除以 1,我们返回与列为“LC”的任何 Faction 对应的行号。否则我们会得到一个除法错误。使用聚合忽略错误的能力,剩下要做的就是选择我们想要的第 n 个最小值。 聚合(15,6,ROW(WORLDS!$B$2:$B$999)/(Worlds!$E$2:$E$999="LC),ROW()-8) 现在我们要在第一个位置选择第一个 LC 实例。考虑到这个公式将从 Factions 表的第 9 行开始,我们使用 ROW() 函数获取当前行,并减去 8。这计算为 ROW()-8 == 9-8 = 1。所以我们取第一个最小值。在这种情况下,这将是第一个世界。 从这里我们添加一个基本的 Index() 语句 INDEX(Worlds!$B$2:$B$999,AGGREGATE(15,6,ROW(Worlds!$B$2:$B$999)/(Worlds!$E$2:$E$999="LC"),ROW() -8)-1) 索引将查找给定地址的单元格,我们希望它在 $B$2:$B$999 中搜索,这是我们的 Worlds 所在的位置。我们还从 Small 返回的值中减去 1 作为偏移量,因为我们的 Worlds 不是从第 1 行开始的。 希望这有帮助!
对的,这是可能的
但是,您必须从一个派系到另一个派系清理一些小事情。
如果你不特别关心它是如何工作的,这里是工作公式
现在解释
该公式通过创建一个真正的 False 数组起作用
表示我们要使用 Small 函数。Small 将检索符合我们想要的标准的最小值。(或者在这种情况下是第一个 TRUE 值)
表示我们要忽略除以零错误的信号,这将是相当多的。
创建一系列数字 2-我们数据集的长度
现在我们已经说过我们想要将我们的数字数组除以条件。Worlds E2-E999 是我们获取派系信息的地方,我们要求 Excel 获取该范围内的所有值并返回 TRUE/FALSE。如果派系是“LC”则为真,否则为假。这是一个巧妙的技巧,EXCEL 将 TRUE/FALSE 值视为 1 和 0。通过将我们的初始数字数组除以 1,我们返回与列为“LC”的任何 Faction 对应的行号。否则我们会得到一个除法错误。使用聚合忽略错误的能力,剩下要做的就是选择我们想要的第 n 个最小值。
现在我们要在第一个位置选择第一个 LC 实例。考虑到这个公式将从 Factions 表的第 9 行开始,我们使用 ROW() 函数获取当前行,并减去 8。这计算为 ROW()-8 == 9-8 = 1。所以我们取第一个最小值。在这种情况下,这将是第一个世界。
从这里我们添加一个基本的 Index() 语句
索引将查找给定地址的单元格,我们希望它在 $B$2:$B$999 中搜索,这是我们的 Worlds 所在的位置。我们还从 Small 返回的值中减去 1 作为偏移量,因为我们的 Worlds 不是从第 1 行开始的。
希望这有帮助!