如何从有条件的列中获取最新值
我在 Excel 中有一个表格,其中包含以下列:
- 日期
- 人员姓名
- 金额 (£)
该表格用于记录人们何时向我付款。通常,我可以让不止一个人在同一天向我付款。而且,随着时间的推移,同一个人会在很多天向我付款。
记录添加到表格底部,以便按日期排序,但不再按名称或金额排序。
使用公式,有没有办法检索特定人员的最新金额?
如果这太复杂或不可能,那么我可以采用以下解决方法: 将第四列添加到名为“Last”的表中。如果这是特定人员的最后一个条目,则显示 TRUE,否则显示 FALSE。
I have a table in Excel which has the columns:
- Date
- Person Name
- Amount (£)
The table is used to record when people pay me money. Typically, I can get more than one person paying me on the same day. Also, the same person will pay me on many days over the course of time.
Records are added to the bottom of the table so the ordering will be on date but no further ordering on name or amount.
Using formulas, is there a way I can retrieve the most recent amount for a specific person?
If this is too complicated or not possible then I can settle for the following work around:
Add a 4th column to the table called "Last". This will display TRUE if it is the last entry for a specific person, FALSE if it is not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一种基于我在之前的SO帖子中给出的答案的方法。
其中 A 是“日期”列,B 是“人员姓名”列,C 是“金额”列。您必须通过按 Ctrl+Shift+Enter 将其输入为数组公式。
Here's one way to do it based on an answer I gave in a previous SO post.
Where A is the Date column, B is the Person Name column, and C is the Amount column. You must enter this as an array formula by pressing Ctrl+Shift+Enter.
感觉应该有一个相当直接的答案,但我发现它相当令人头疼,所以有兴趣看到答案。
在进行了一些谷歌搜索后,我发现了一个发布在专用 Excel 网站上的解决方案(在此处查看 )。 [注意 - 查看“任意查找”标题下]
将其应用到您的示例中,假设您的数据位于
A1:C10
中,并且您想要在单元格D2
中键入名称并在单元格D3
中返回最近的付款:在单元格
D3
中输入以下数组公式(即输入公式,然后按CTRL
+SHIFT
+ENTER
如果您需要更多详细信息,建议您查看我提供的链接。为了清楚起见,我只是根据提供的链接调整了公式(更改了单元格引用)。
It felt like there should be a fairly straight-forward answer to this but I found it quite a head scratcher so was interested to see an answer.
Having done some googling I came across a solution posted on a dedicated excel site (view here). [NB - look under the header 'Arbitrary Lookups']
Applying it to your example, suppose your data is in
A1:C10
and in cellD2
you want to type a name and return the most recent payment in cellD3
:In cell
D3
enter the following as an array formula (i.e. type in formula and then pressCTRL
+SHIFT
+ENTER
It would recommend checking out the link I provided if you want more detail. For clarity, I have merely adapted the formula (changed cell references) from the link provided.
我在这里看不到一种仅用一个公式来完成此操作的简单方法。
如果您有从
A2
到C11
的数据。您可以将此公式添加到第 4th 列(假设在单元格
D2
中):这是一个 数组公式 您必须使用Ctrl-Shift-Enter
这将告诉您当前人员的最后日期。
然后用另一列找到最后金额(假设在单元格
E2
中)并使用此公式:[编辑]我刚刚尝试将公式合并为一个和这很简单:
这仍然是一个数组公式。
唉,@Excelll 更聪明(也更快),并且第一次就给出了解决方案
I can't see right here an easy way to do it in only one formula.
If you have your data from
A2
toC11
.You can add this formula on the 4th column (let say in cell
D2
):This is an array formula you have to validate with Ctrl-Shift-Enter
This will tell you what is the last date for the current person.
And then find the last amount with another column (let say in cell
E2
) and use this formula:[EDIT] I've just tried to combine the formulas into one and that simply works:
and this is still an array formula.
Alas, @Excellll was smarter (and faster) and gave the solution at first shot