Excel formula Excel-使用数组公式定义命名范围
我有一个明确的课程表、日期表和讲师表。在Excel中,我显然可以过滤表格,使其仅显示一门课程。我还可以创建另一个工作表,并使用索引/匹配数组公式来显示筛选后的表。但是,我试图定义一个命名范围,该范围将输出过滤表的二维数组Excel formula Excel-使用数组公式定义命名范围,excel-formula,Excel Formula,我有一个明确的课程表、日期表和讲师表。在Excel中,我显然可以过滤表格,使其仅显示一门课程。我还可以创建另一个工作表,并使用索引/匹配数组公式来显示筛选后的表。但是,我试图定义一个命名范围,该范围将输出过滤表的二维数组 Course Date Instructor Winemaking 7/3 Fred Paper Airplanes 7/16 Bill Advanced Kazoo 7/22 Sally Wine
Course Date Instructor
Winemaking 7/3 Fred
Paper Airplanes 7/16 Bill
Advanced Kazoo 7/22 Sally
Winemaking 8/6 Harry
Cooking 101-Toast 8/19 Beth
Advanced Kazoo 8/24 Xavier
Winemaking 9/14 Fred
Paper Airplanes 9/25 Lilly
我希望命名范围(例如CourseWine)等于:
Winemaking 7/3 Fred
Winemaking 8/6 Harry
Winemaking 9/14 Fred
我希望有一个命名范围,因为它:
=INDEX(Table,MATCH(1,(Table[Course]="Winemaking")*(Table[Date]>TODAY()),0),0)
=INDEX(Table,SMALL(IF(Table[Course]="Winemaking",ROW(Table[Course])-MIN(ROW(Table[Course]))+1),ROW(INDIRECT("1:"&COUNTIF(Table[Course],"Winemaking")))),0)
是否有一个公式,我可以定义一个命名范围,返回二维数组?我也可以通过数据透视表来实现这一点,但不能完全防止有人更改数据透视表并破坏SharePoint中的视图。。。我不能求助于按课程而不是按日期对清单进行排序。我也希望避免VBA。这可能吗?若要使用INDEX()从数组公式返回多个查找值,请使用SMALL()而不是MATCH()来定位这些值 根据您的情况,可以使用以下数组公式:
=IFERROR(INDEX(Table,SMALL(IF(("Winemaking"=Table[Course])*(Table[Date]>TODAY()),ROW(Table[Course])-MIN(ROW(Table[Course]))+1, ""),ROW(A1)),{1,2,3}),"")
注:
这是一个写得很好的问题。你的情况和问题非常清楚,这使得回答问题更加容易。谢谢。我更新了答案,在公式中加入了日期标准(课程在今天之后)。我的电子邮件地址在我的个人资料中。请给我发电子邮件,我会把模型发给你,效果很好。我们将浪费大量的时间在这里来回走动。我的第二次尝试使用了SMALL(请参见上面的两个公式示例)。您的示例实际上将命名区域的输出从整行更改为仅一个单元格“Winemaking”。我可能还不够清楚,但我已经知道如何将其作为CSE数组输入到另一个工作表中,但我正在尝试避免这种情况。我希望用名称管理器来定义一个名称,从而定义一个公式,但它仍然只返回第一行而不是整个数组。我现在在这里制作的模型示例中看到我的公式正在工作,我在这里设计了您问题的答案。它起作用了。它产生完整的输出。。。全部三列。我的电子邮件地址在我的个人资料中。请给我发电子邮件,我会把模型发给你。我们将浪费大量的时间在这里来回穿梭。这是我的模型中唯一命名的公式。但是,您需要为第一行输出输入一次,然后将该行复制到所需输出的其他行。