excel 在单独的工作表中显示表的一部分

disho6za  于 2023-05-19  发布在  其他
关注(0)|答案(3)|浏览(322)

在工作簿中的第一个工作表中,我有一个大表,其中包含多列和多行(大约有1000行和20列)。
我想知道是否可以根据主表中某列的条件在工作簿的另一个工作表中显示该表的一部分。
为了帮助解释这一点,我将使用实际工作簿中的一个例子。
在工作表1(主表称为 * 一般员工信息 *)中,在A列中,每行都有一个标识员工的唯一编号(每个员工都有自己的ID号)。
B列表示其办公地点(城市/直辖市)。C列表示办公室所处的状态。D列是他们每年的工资金额。
还有多个列包含这种类型的员工信息,这不需要进一步解释。

我的问题是,我是否可以在工作簿中标记工作表2 "New York State",并让该工作表显示与工作表1相同的所有信息(所有列相同),但只显示在纽约州工作的员工?

然后有另一个标签"California"的表,只有在加州工作的员工,等等……换句话说,每个状态都有一个单独的表。
这本质上类似于使用State列过滤主表,以仅显示一个状态,但我希望结果在单独的工作表中,而不是过滤包含所有信息的主表。
我曾考虑在每个新工作表中使用透视表,但我不确定这是正确的方法。
这可能吗?我希望我在解释这个问题时说得很清楚。

ig9co6j1

ig9co6j11#

如果您使用Excel 2013或更高版本作为起点,我真的建议您使用Excel表格功能。表格之所以摇滚有很多原因,包括让你的工作表对用户来说更易读,以及让诸如INDEX/MATCH之类的公式更不容易出错。
一旦表与主数据一起就位,我使用data modeling capability链接回那些表。
这些步骤在Excel 2013 -版本中有效,2018年左右。它在Office 365中发生了变化(见下文)
1.创建一个工作表,或转到当前工作表中所需的位置。
1.点击“数据”选项卡并在连接部分选择“连接”。
1.从那里选择添加按钮上的下拉列表,然后选择Add to Data Model..Connections Dialog
1.单击“表”选项卡。单击所需的表格。
1.现在关闭对话框
1.在数据选项卡上,单击数据选项卡的“获取外部连接”中的【现有连接】。
1.单击表选项卡
1.选择所需的表
1.选择表单选按钮
1.按回车键(或者新工作表或其他单元格,如果你需要的话)
1.poof来自另一个工作表的表现在反映在当前工作表中。
此时,您可以使用数据切片进行子集化,隐藏列,在表的右边缘或左边缘插入新公式的新列,等等。
您必须使用工具栏上的“刷新全部”按钮单独刷新。
在Excel中,截至2019年10月为(谢谢Josh指出这一点!)它变得更好,因为他们包括了一些excel中的“强大”工具,并制作了一个工具栏项来访问功能。具体而言:
1.通过选择工作表中的数据并使用“插入表”(insert Table)来创建一个包含源数据的表。
1.选择表格
1.在“数据”选项卡上,单击中下方带有工具提示“从表/范围”的小图标
1.这将打开Power Query Editor。Microsoft has a tutorial; but it looks a little different now
1.在构建查询之后;在编辑器中按下“关闭并加载”。如果没有选项,它将创建一个新的图纸。如果你选择了带有省略号的选项,你还有一些其他选项。

n1bvdmb6

n1bvdmb62#

这里有一个你想做的事情的变体:http://www.get-digital-help.com/2009/09/28/extract-all-rows-from-a-range-that-meet-criteria-in-one-column-in-excel/
如果您的所有数据都在Sheet1上,并且您定义了一个包含所有名为[tbl]的元素的范围(CTRL F3)在Sheet2中在单元格A1中输入您要搜索的Sheet1的列号在Sheet2中的单元格B1中输入搜索条件(即,您要过滤的州)从单元格A2到Z1000(例如)输入以下数组公式(因此使用CTRL SHIFT RETURN输入)

=INDEX(tbl, SMALL(IF((INDEX(tbl, , $A$1, 1)=$B$1), ROW(tbl)-MIN(ROW(tbl))+1, ""), ROWS(A2:$A$2)), , 1)

在执行此操作时需要注意的一个关键点是首先为第一行创建数组,CTRL SHIFT RETURN创建数组,然后向下拖动。如果以错误的顺序执行,则不会正确地在函数末尾增加行计数器。只要按照这篇文章开头的链接中的说明,你就应该得到它。

fiei3ece

fiei3ece3#

当你问这个问题的时候,这是一个痛苦。对于那些在2023年或以后寻找这个的人来说,现在很容易。使用Filter和Lambda(在Excel 365或2021中,在旧版本中不可用),您可以超级轻松地完成这一任务。这假定工作表名称是要过滤的确切值。以你的例子,纽约州。
首先,为了提高可读性,您需要创建一个Lambda函数来获取工作表名称。这不是绝对必要的,但以后会保存很多麻烦。
1.打开Excel,然后转到公式>名称管理器>新建。
1.在“新名称”对话框中,输入函数的名称,例如“GetSheetName”。
1.在“Refers to”字段中,输入以下公式并单击“OK”:
=LAMBDA(ref,MID(CELL(“filename”,ref),FIND(“]",CELL(“filename”,ref))+1,255))
“ref”是传递给计算的参数。当您在计算中看到ref时,它将使用您在公式中输入的任何数据。对于我们的目的,我们只是使用我们输入过滤器函数的单元格。但实际上工作表上的任何单元格引用都可以。
接下来,转到纽约表并在单元格A1中输入以下过滤函数:
=FILTER(普通员工信息[#All],普通员工信息[州/市]=GetSheetName(A1),“No match”)
这将自动使用表中的信息填充工作表,其中市政信息与工作表名称匹配。您可以使用其他数组函数进一步处理它。但如果你想在2023年做到这一点,这很容易。

相关问题