2017-09-26 61 views
0

如果列a中的名称等于特定值,我有一张包含要复制到不同工作表的数据行的工作表。例如:Excel如果公式3

A  | B  | C 
Name | Color | Amount 
Sue  | Blue | $400 
Joe  | Green | $1000 

表苏需要把列B和C从苏的记录,它的工作表,如果列等于苏

表乔需要把B和C柱从乔的记录,它的工作表,如果列a等于乔

等等等等......

任何人都可以帮忙!?

+0

http://sites.madrocketscientist.com/jerrybeaucaires-excelassistant/parse-functions/sheet1-to-sheets可能会感兴趣的。 – pnuts

+1

正如链接所示,你不想用公式来做到这一点。你的公式需要是数组类型,太多的数据会导致计算时间变慢,甚至可能导致Excel崩溃。你会想在vba中编码。网上有很多关于如何做到这一点的例子。 –

+0

@ScottCraner - ...好吧,喂。好点,虽然VB解决方案可能会更好,如果数据很多... – BruceWayne

回答

1

那么,如果你没有太多的数据,你可以用数组公式来做到这一点。

设置您的主表(假设它是Sheet1)与命名范围。您的A2:A100将其命名为Name,B2:B100,将其命名为Color,并将其命名为Amount。 (根据需要调整范围)

然后,在每个人的床单中,具有称为Name,ColorAmount的标题行。当你到达数据结束

=INDEX(INDIRECT(A$1),SMALL(IF(INDIRECT($A$1)=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),ROW(INDIRECT($A$1))-ROW(Sheet1!A$2)+1),ROWS(Sheet1!$A$2:A2))) 

IFERROR([formula],"")隐藏#NUM错误:然后你就可以用这个公式(带有CTRL + SHIFT + Enter输入)。

enter image description here

+0

是的,但这并不妨碍这是一个很好的答案。尽管我会使用Aggregate而不是小型的,但是6个在另一个中是6个。 –

+0

@ScottCraner是真的。当谈到“Aggregate”时,我仍然是一个年轻的Padawan。工作很有趣,但我同意这里有更好的答案。 – BruceWayne

+0

谢谢,明天我会试试这个,并让你知道。不,这不是很多数据。也许30行(记录),只有10列。 –