我filter()在 Excel 中使用该函数,并希望将输出范围更改为仅垂直返回。
在单独的表格中,我有两列。一列返回一个人的付款,下一列返回付款日期(我还有第三列用于过滤功能中使用的人员的 ID 号,但这没有输出)。
我的工作表过滤给定月份内的付款。如果只有一场比赛(例如 2010 年 1 月 1 日支付了 100场比赛),它可以正常工作并返回
100
01/01/2010
输出是这样的,因为使用transpose(). 但是,如果有多个匹配项,它将返回以下内容:
100 500
01/01/2010 01/20/2019
我的目标是让它像这样垂直输出:
100
01/01/2010
500
01/20/2019
如上所示,我如何实现它的输出?我想可以在 VBA 中编写一个用户定义的函数来分配每个输出元素,然后在函数中定义以垂直输出它——但我不知道如何处理这样的代码。
Sheet1 包含的数据如下:
Payments Date ID_no
100 01/01/2010 ID01
500 01/20/2019 ID01
我的filter()功能如下所示
TRANSPOSE(FILTER(Sheet1!Z2:AA13;(Sheet1!AB2:AB13=B1)*(Sheet1!AA2:AA13>S4)*(Sheet1!AA2:AA13<=T4);"")) 在哪里
Sheet1!Z2:AA13是付款和付款日期的两列
Sheet1!AB2:AB13=B1是 ID 列必须等于单元格 B1 中写入的 ID
Sheet1!AA2:AA13>S4是付款日期必须在 S4 中写的日期之上(之后)
Sheet1!AA2:AA13<=T4是日期必须低于(之前)在 T4 中写入的日期
后者确保仅包括特定时间范围(一个月)内的付款。请注意,每月付款不超过 3 次,即输出范围不会超过 6 (3x2) 行。
理想的最终结果是用户定义的函数,该函数原则上与上述相同,filter()但重新定义了输出位置,因此仅垂直输出,即如果在 A 列中键入函数,则函数的输出应仅在 A 列中
链接到文件https://wetransfer.com/downloads/c3a081f47e20fd1718510545f9a7b80820200627212111/8eeb4f