使用多个字段和不分组的Excel数据透视表sorting

我有一个Excel工作簿,其中一个工作表上的联系信息和另一个上的表单。 我想要创build另一个工作表,其中有筛选的联系人FULLNAME集显示在窗体工作表上的列表中。 我有一个透视表与FULLNAME工作,但我不能添加一个sortingLASTNAME没有分组的项目,这不是我想要的。 任何build议,不包括数据重复

更新:

所以我用这种方法部分按照我想要的方式工作。 下面的图片是一个基于工作表中的表格的重要表格。 你可以看到名字是按名字sorting的。 我希望他们按姓氏sorting

在这里输入图像说明

所以当我把姓氏添加到Piviot表中时,我可以按姓氏sorting,当然,它将像这样分组数据,这是预期的。

在这里输入图像说明

这在我的表单列表中给了我这个结果

在这里输入图像说明

正如你所看到的名字分组条目也显示在列表中是不可取的。

更新:使用下面的Andreas解决scheme和其他一些修改我能够完成这个问题。 我发布了一个完整的解决scheme,因为我知道别人会需要它。

所以在下面的图片中使用了Andreas解决scheme,它给了我数据透视表右边的第一组数据。 正如你所看到的,它有空间,并将难看的表绑定到一个列表。 所以使用下面的macros函数,我能够创build没有空格的第3列数据。 function如下…

=IFERROR(INDEX(SortedSpacedRange,SMALL((IF(LEN(SortedSpacedRange),ROW(INDIRECT("1:"&ROWS(SortedSpacedRange))))),ROW(A1)),1),"") 

我没有在函数中使用范围数据,而是使用名为“SortedSpacedRange”的第二列数据创build了一个表。 这使我可以更好地使用多张纸。 不要忘记使用Ctrl + Shift + Enter来插入函数。

在这里输入图像说明

正如你在下面看到的,我现在有一个姓氏sorting列表,没有空格,而不是有意放在未分页表的第一行。

在这里输入图像说明

我希望有人认为这有用。 再次感谢安德烈亚斯

现在我明白你需要什么了。
就在几天前,我问了如何在这里从数据透视表中挑选项目:
https://stackoverflow.com/questions/39383971/how-can-i-detect-pivot-table-new-items

你需要的是:

 Function IsItem(c) If c.IndentLevel <> 0 Then ' I think this will work, not tested. Typing on my phone IsItem = True Else IsItem = False End If End Function 

如果数据透视表中的项目是新项目或“总和”,这将返回true / false。

因此,在数据透视表旁边的新列中使用以下公式:

编辑:显然是不是A1枢轴表开始,我的坏。 只要用任何细胞replace细胞是第一个。 编辑结束。 编辑2:我现在看到,它是A4是第一个。 编辑结束2。

 =if(A4="","",if(IsItem(A4),A4,"")) 

它首先看单元格,如果它是空的,则返回空。
如果不为空,则查看该值,如果是全名(不仅是姓氏),则返回名称,否则返回空值。

现在,如果你填写这个公式,你应该只有你可以在你的表单列表中使用的全名列表。

vba代码应放置在模块中,并且在将表单添加到公式之前,需要将文件保存为macros活动工作簿xlsm。