试图在多个工作表上查找特定行/范围中的最后一个非空单元格

时间:2016-03-22 00:07:09

标签: excel excel-formula

我在这里看了几个建议,并没有找到适合我的东西。如果可能的话,我宁愿不使用数组公式。但是,如果这是唯一的方法,我会尝试使用它。

我正在研究Excel 2013中的各种考勤工作簿。该工作簿包含计算表,列表表和一年中每个月的表。 “列表”表有一个名称列表和月份列表。我已经包含了一个示例工作簿的链接,以演示如何设置工作表以及我正在使用的基本功能,名称,列表等。

我的示例工作簿: https://app.box.com/s/mgvums1vmnmnec7e7d0p4vi5daoyo5nv

当查找特定行/范围中的最后一个非空单元格时,我在每个特定月份表单上使用以下LOOKUP时收到正确的结果:(我在几个网站上挖掘后发现)= LOOKUP (2,1 /(C5:AG5<>"&#34),C $ 4:AG $ 4)   - 对于2月份,C5:AG5范围内的最后一个条目是AA5,即第25个。

当我在任何非月份表中使用以下查找时,我也会收到正确的结果:= LOOKUP(2,1 /(2月!C5:AG5<>""),2月! C $ 4:AG $ 4)

话虽如此,我遇到的两个具体问题如下:

  1. 在使用组合框/表格控件中选择的名称和月份信息时,我无法弄清楚如何提出最后一个非空单元格(这是最后一天的出勤日期)。简单地说,在我的样本工作簿中,我想知道2月的最后一天约翰尼出席了会议。
  2. 我尝试过简单,只需使用&#34;月&#34;我选择了。我尝试了以下几种不同的改动: = LOOKUP(2,1 /(月&安培;&#34; C5:AG5&LT;&GT;&#34;&#34;&#34),月和安培;&#34; C $ 4:!AG $ 4#34 ;) 我得到的最接近的是上面的查找,最终会变成你在下面看到的内容(在计算步骤中查看)。它当然会返回一个#VALUE!错误。 = LOOKUP(2,1 /&#34;二月C5:AG5&LT;&GT;&#34;&#34;&#34;,月和安培;&#34; C $ 4:!AG $ 4#34)< / p>

    我也尝试了这个数组公式,它给了我4的结果。哪​​个,不是正确的结果。而且,我不知道结果实际来自哪里。 = MAX((INDIRECT(F4&安培;&#34;&#34;&安培;&#34; C5:!AG5&#34;)&LT;&GT;&#34;&#34;)*(ROW(INDIRECT(F4&安培;&#34;&#34;&安培;&#34; C $ 4:!AG $ 4#34;))))

    1. 当使用组合框/表单控件中的选定名称时,我无法弄清楚如何在所有月份表中找到最后一个非空单元格。基本上,我想知道约翰尼出席的一年中的最后一天。在此示例工作簿中,将于4月11日发布。我知道公式只会返回&#34; 11&#34;。我相信我可以使用生成的工作表名称格式化结果。 (在此示例中,4月)
    2. 我相当肯定我需要使用VLOOKUP。我似乎无法打破我想要的一般概念和制定它的正确方法之间的障碍。

      任何帮助将不胜感激。我此刻感到非常迷茫。如果您需要我的更多信息,请告诉我。

      谢谢, Kurewe

1 个答案:

答案 0 :(得分:2)

关键是使用INDIRECT与您已有的完全相同的LOOKUP公式,并使用MATCH公式确定所选名称的行号。

放置以下公式:

  • G3:=MATCH(F3,NameList,0)+4(在NameList中查找所选名称的项目编号)
  • H2:=F4&"!C4:AG4"(构建所选月份日期行的地址)
  • H3:=F4&"!C"&G3&":AG"&G3(构建用于所选名称和月份的地址)
  • E9:=INDEX(MonthList,ROW()-ROW(E$8)) 复制到E20 (使用MonthList查找此行的月份名称)
  • G9:=E9&"!C4:AG4" 复制到G20 (构建E9中该月份日期行的地址)
  • H9:=E9&"!C"&G$3&":AG"&G$3 复制到H20 (构建用于所选名称的地址和E9中的月份)
  • F9:=IFERROR(LOOKUP(2,1/(INDIRECT(H9)<>""),INDIRECT(G9)),"(n/a)") 复制到F20 (使用G9&amp; H9中的地址找到&#34; X&#34;的最后一天)
  • G4:=LOOKUP(2,1/ISNUMBER(F9:F20),ROW(F9:F20)-ROW(F8))(找到带有&#34的第一个单元格的索引;(n / a)&#34;在其中)
  • F5:=LOOKUP(2,1/(INDIRECT(H3)<>""),INDIRECT(H2))(找到最后一天的&#34; X&#34;其中包含H2和H3中的地址)
  • F6:=INDEX(MonthList,G4)&"-"&INDEX(F9:F20,G4)(构建一年内出勤最后一天的日期)