由于工作限制,我正在寻找没有VBA的解决方案。
我的工作表的架构如下:
SheetName: 'Spend Track'
Row 4 - headings
A B C D E F G H I J
Date, Originator, Supplier, Description, Receipt, Type, Account, Gross, GST, Net
Row 5 onward is data.
在另一张表(称为Kevin
)中;我想要Spend Track中的所有行!那
匹配条件Bx='Kevin'
。其中x =给定的行号。
因此,如果Spend Track有10行,其中3行属于Kevin。工作表Kevin
将有3行,并会在Spend Track
中添加新行时更新。
谢谢!
答案 0 :(得分:0)
主要问题是在凯文中找到您需要的行号列表。根据蒂姆·威廉姆斯的暗示,这是一种方式。在“Kevin”表的某些工作栏中(如果需要可以稍后隐藏),我将使用列“A”,创建一个从第4行开始的列(或在第3行中放置标题,第一个),以保持事情很简单,就是在其顶部填充的单元格中=if('Spend Track'!B4="Kevin",row(),1000000)
,其中一百万比第一张表中的行数要大得多。这会为您提供一个列中包含Kevin的行号(您的x)或一百万。
现在在另一个与第一个并行的工作列中,在我的示例中为B,但不需要那么长,从同一行开始,执行并向下拖动,=small(A$4:A,ROW()-3)
和presto,您将得到一个列表与凯文在一起的行数,其次是数百万。
一旦你有行号,INDEX将完成其余的工作。在您希望输出开始的位置,放入=index('Spend Track'!A:A,$B4)
,向右拖动直到它变为=index('Spend Track'!J:J,$B4)
并向下拖动尽可能多的行,您可以想象想要匹配。
这将为您提供所有所需的行。
在Google表格上,超出消费跟踪结尾的参考文献会将内容留空,但似乎在Excel中您会得到一排难看的0。如果是这样而且困扰你,公式可以适应=if($B4=1000000,"",index('Spend Track'!A:A,$B4))
应该这样做。