带有运行总计总计的Excel数据透视表不正确

rlcwz9us  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(104)

我有一个人和他们的活动的日期列表的数据。我需要清楚地计算一个人在一天内做了多少件准确的活动。我的数据:
| 日期|人|活动|精确活动|
| --------------|--------------|--------------|--------------|
| 2023/04/04|亚历克斯|行走|和狗一起散步|
| 2023年4月17日|杰克|徒步旅行|在山上徒步旅行|
| 2023年4月17日|杰克|徒步旅行|在山上徒步旅行|
| 2023/04/18|亚历克斯|徒步旅行|在山上徒步旅行|
| 2023/04/18|亚历克斯|徒步旅行|在山上徒步旅行|
| 2023/04/18|亚历克斯|徒步旅行|在山上徒步旅行|
| 2023/04/18|亚历克斯|行走|和狗一起散步|
| 2023/04/19|亚历克斯|徒步旅行|在山上徒步旅行|
| 2023/04/20|杰克|跑步|无齿轮运转|
| 2023/04/26|彼得|行走|和狗一起散步|
| 2023/04/26|彼得|徒步旅行|在山上徒步旅行|
| 2023/04/26|艾格尼丝|跑步|无齿轮运转|
| 2023/04/26|亚历克斯|徒步旅行|在山上徒步旅行|
| 2023/04/27|桑德拉|徒步旅行|在山上徒步旅行|
所以结果应该是:

2023-04-04  Alex    1
2023-04-17  Jack    1
2023-04-18  Alex    2
2023-04-19  Alex    1
2023-04-20  Jack    1
2023-04-26  Peter   2
2023-04-26  Agnes   1
2023-04-26  Alex    1
2023-04-27  Sandra  1
Total               11

期望的结果是两个类似于这样的透视表:
| 精确活动的不同计数|列标签|
| 行标签|徒步旅行|跑步|行走|总计|
| --------------|--------------|--------------|--------------|--------------|
| 2023-04-04 2023-04-04|||1|1|
| 2023-04-17 2023-04-17 2023-04-17|1|||1|
| 2023-04-18 2023-04-18 2023-04-18|1||1|二|
| 2023-04-19 2023-04-19 2023-04-19|1|||1|
| 2023-04-20 2023-04-20 2023-04-20||1||1|
| 2023-04-26 2023-04-26|我的天|1|1|三|
| 2023-04-27 2023-04-27|1||||
|总计|6|二|三|第11章|
| 精确活动的不同计数|列标签|
| 行标签|艾格尼丝|亚历克斯|杰克|彼得|桑德拉|总计|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 2023-04-04 2023-04-04||1||||第一章|
| 2023-04-17 2023-04-17 2023-04-17|||1|||第一章|
| 2023-04-18 2023-04-18 2023-04-18||二||||我的天|
| 2023-04-19 2023-04-19 2023-04-19||1||||第一章|
| 2023-04-20 2023-04-20 2023-04-20|||1|||第一章|
| 2023-04-26 2023-04-26|1|1||二||四个人|
| 2023-04-27 2023-04-27|||||1|第一章|
|总计|第一章|五楼|我的天|我的天|第一章|第11章|
我创建了一个数据透视表,其中列是活动,行是日期和人员,值是确切活动的不同计数。结果是:
| 精确活动的不同计数|列标签|
| 行标签|徒步旅行|跑步|行走|总计|
| --------------|--------------|--------------|--------------|--------------|
| 2023-04-04 2023-04-04|||1|1|
| 2023-04-17 2023-04-17 2023-04-17|1|||1|
| 2023-04-18 2023-04-18 2023-04-18|1||1|二|
| 2023-04-19 2023-04-19 2023-04-19|1|||1|
| 2023-04-20 2023-04-20 2023-04-20||1||1|
| 2023-04-26 2023-04-26|1|1|1|三|
| 艾格尼丝||1||1|
| 亚历克斯|1|||1|
| 彼得|1||1|二|
| 2023-04-27 2023-04-27|1||||
| 总计|1|1|1|三|
我希望它将显示的确切活动的唯一计数的总日,人和总。
因此,我尝试在值中使用精确活动的非重复计数,并将值显示为日期中的运行总数,结果是:
| 精确活动的不同计数|列标签|
| 行标签|徒步旅行|跑步|行走|共计|
| --------------|--------------|--------------|--------------|--------------|
| 2023-04-04 2023-04-04|0|1|0|1|
| 2023-04-17 2023-04-17 2023-04-17|1|1|0|二|
| 2023-04-18 2023-04-18 2023-04-18|二|二|0|四|
| 2023-04-19 2023-04-19 2023-04-19|三|二|0|五|
| 2023-04-20 2023-04-20 2023-04-20|三|二|1|六|
| 2023-04-26 2023-04-26|四|三|二|九|
| 2023-04-27 2023-04-27|五|三|二|10个|
|总计|||||
这几乎是我想要的,尽管我也想看到总数,因为我在所需的结果显示。我发现,我需要创建一个度量并将其用作值,但我不知道应该使用什么DAX公式来实现这一点。
另一个问题是按日期计算的总计不正确,因为它计算的是唯一的确切活动以及该日期的唯一活动,因此,在2023-04-26日,而不是4,它显示3。
同样的问题也存在于另一个数据透视表中,其中列是person,行是date,值是existent count of exact activity,并将值显示为日期中的运行总计:
| 精确活动的不同计数|列标签|
| 行标签|艾格尼丝|亚历克斯|杰克|彼得|桑德拉|总计|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 2023-04-04 2023-04-04|0|1|0|0||1|
| 2023-04-17 2023-04-17 2023-04-17|0|1|1|0||二|
| 2023-04-18 2023-04-18 2023-04-18|0|三|1|0||四|
| 2023-04-19 2023-04-19 2023-04-19|0|四|1|0||五|
| 2023-04-20 2023-04-20 2023-04-20|0|四|二|0||六|
| 2023-04-26 2023-04-26|1|五|二|二||九|
| 2023-04-27 2023-04-27|1|五|二|二|1|10个|
| 总计|||||||
它显示了错误的总数,因为如果你把所有的人的值加起来,答案是11,而不是10。
我该如何解决这些问题呢?也许还有另一种方法来计算我需要的东西,不使用数据透视表,或者也许我只需要创建正确的度量值?
先谢谢你了!

7kjnsjlb

7kjnsjlb1#

覆盖行、列和总计区域的默认聚合需要一个相当复杂的度量:

=
VAR T1 =
    SUMMARIZE (
        Table1, Table1[Date],
        "Distinct Count Exact Activity", DISTINCTCOUNT ( Table1[Exact Activity] )
    )
VAR T2 =
    SUMMARIZE (
        Table1, Table1[Person],
        "Distinct Count Exact Activity", DISTINCTCOUNT ( Table1[Exact Activity] )
    )
VAR T3 =
    SUMMARIZE (
        Table1, Table1[Date], Table1[Person],
        "Distinct Count Exact Activity", DISTINCTCOUNT ( Table1[Exact Activity] )
    )
VAR DateFiltered = ISFILTERED ( Table1[Date] )
VAR PersonFiltered = ISFILTERED ( Table1[Person] )
RETURN
    IF (
        DateFiltered && PersonFiltered,
        DISTINCTCOUNT ( Table1[Exact Activity] ),
        IF (
            PersonFiltered,
            SUMX ( T1, [Distinct Count of Exact Activity] ),
            IF (
                DateFiltered,
                SUMX ( T2, [Distinct Count of Exact Activity] ),
                SUMX ( T3, [Distinct Count of Exact Activity] )
            )
        )
    )
suzh9iv8

suzh9iv82#

所以尝试使用unique()和countif()或countifs()这样的函数:

列E组合了名称和活动,然后unique将其带到单个条目。
列I获得唯一的日期,列K有两个下拉唐斯,用于选择日期和人员加活动。
您可以根据需要扩展它。

相关问题