这让我疯了,所以我会尽力解释。基本上我有一个电子表格用于跟踪一年工资的工作时间。由于它是每两周一次,所以每隔一周进行一次检查,这意味着一年中的2个月会有几个月列出3次而不是列表中的两次。所以2016年的一个例子是:
A B C
1 Jan 08 $1,900.00 Drop Down
2 Jan 22 $1,900.00 Check 1
3 Feb 05 $1,850.00 Check 2
4 Feb 19 $1,800.00 Check 3 if there is one
5 Mar 04 $1,900.00
6 Mar 18 $1,900.00
7 Apr 01 $1,900.00
8 Apr 15 $1,900.00
9 Apr 29 $1,800.00
10 May 13 $1,900.00
11 May 27 $1,900.00
12 Jun 10 $1,900.00
13 Jun 24 $1,850.00
14 Jul 08 $1,900.00
15 Jul 22 $1,900.00
16 Aug 05 $1,900.00
17 Aug 19 $1,900.00
18 Sep 02 $1,900.00
19 Sep 16 $1,900.00
20 Sep 30 $1,900.00
21 Oct 14 $1,900.00
22 Oct 28 $1,900.00
23 Nov 11 $1,900.00
24 Nov 25 $1,900.00
25 Dec 09 $1,900.00
26 Dec 23 $1,900.00
A栏包含薪水的日期,B栏包含您在该日期支付的金额。现在,我有一个下拉菜单,让你选择一个月,然后它只显示该月的薪水。
C1 = Drop down with January- December
C2 = check 1
C3 = check 2
C4 = check 3 if there is one
所以我尝试在每个单元格中进行VLOOKUP。
C2 =VLOOKUP(TEXT(C1,"mmm"),TEXT(A1:B26),2)
显然这不起作用,我意识到即使它确实有效,我怎么做C3来显示第二个薪水呢?无论如何都要做一个VLOOKUP,返回所有匹配的值,4月的IE它将返回A7,A8和A9,然后将它们按顺序放在C2-C4单元格中?
修改 因此,经过一些建议,这是我到目前为止:
C2=INDEX(A1:B26,(SMALL(IF(MONTH(A1:A26)=MONTH(C1),ROW(A1:A26)),ROW(1:1))),2)
C3=INDEX(A1:B26,(SMALL(IF(MONTH(A1:A26)=MONTH(C1),ROW(A1:A26)),ROW(2:2))),2)
C4=INDEX(A1:B26,(SMALL(IF(MONTH(A1:A26)=MONTH(C1),ROW(A1:A26)),ROW(3:3))),2)
C3和C4根本不起作用。 C2仅在我选择1月时有效,它返回B1,当我选择2月它返回B2 ...
答案 0 :(得分:1)
我拆分了日期栏(见图),并通过我在评论中提供的链接使用了apporach。
您可以在单元格M12中输入月份的名称。在它旁边你会得到匹配的金额。
1月薪水首次出现的公式为:
=INDEX($M$1:$O$7,(SMALL(IF($M$1:$M$7=$M$11,ROW($M$1:$M$7)),ROW(1:1))),3)
对于第二次出现,它将是
=INDEX($M$1:$O$7,(SMALL(IF($M$1:$M$7=$M$11,ROW($M$1:$M$7)),ROW(2:2))),3)
如果您在下一行插入公式,则会收到错误(#ZAHL< - 它是德国Excel版本......)。
要屏蔽错误消息,您可以按照http://fiveminutelessons.com/learn-microsoft-excel/use-index-lookup-multiple-values-list
中的建议使用ISERROR功能修改强>
正如OP指出的那样,月份和日期的分割是不可能的。我建议从列中提取月份数(通过MONTH
)并调整上面的公式:
=INDEX($M$1:$O$7,(SMALL(IF(MONTH($M$1:$M$7)=MONTH($M$11),ROW($M$1:$M$7)),ROW(1:1))),3)
答案 1 :(得分:0)
找到答案:
{=IFERROR(INDEX($B$1:$B$9,SMALL(IF(MONTH($A$1:$A$9)=MONTH($C$1),ROW($A$1:$A$9)-ROW($A$1)+1,""),ROWS($A$1:A1))),"")}