我该如何计算从一个县只显示一次的数字出现的频率?

时间:2018-12-13 10:45:29

标签: excel excel-formula count excel-2010 countif

嗨,我有很多数据,我需要知道每个值有多少,频率仅与唯一值相对应的频率。我使用了一个countif来计算唯一值,但我想知道它出现的次数。

很抱歉,如果这没有任何意义,请使用以下屏幕截图,以帮助您更好地理解。

https://imgur.com/a/hLUY5um

1 个答案:

答案 0 :(得分:0)

  1. 将B1中的公式更改为

    ContractEnd

    并填写以匹配A列中的值。

  2. 将B列复制到E列,然后进行“排序并删除重复项”¹。

  3. 这将F1中的公式简化为

    CREATE TABLE #CalTable([ID] VARCHAR(8) NOT NULL)
    
    DECLARE @num int
    SET @num = 20170101
    
    WHILE (@num <= 20181231)
    BEGIN
        INSERT INTO #CalTable([ID])
        SELECT @num AS [ID]
    
        SET @num = @num + 1
    END
    
    SELECT X.[Name], X.[TIMEID]
    FROM (
        -- All day availables
        SELECT DISTINCT A.[Name],B.[ID] AS [TIMEID]
        FROM #People A INNER JOIN #CalTable B
        ON B.[ID] BETWEEN A.[ContractStart] AND A.[ContractEnd]
    ) X
    LEFT JOIN (
        -- Working day
        SELECT DISTINCT A.[Name],B.[ID] AS [TIMEID]
        FROM #People A INNER JOIN #CalTable B
        ON B.[ID] BETWEEN A.[ContractStart] AND A.[ContractEnd]
        INNER JOIN #Shifts C ON A.[Name]=C.[Name] AND B.[ID] BETWEEN C.[ShiftStart] AND C.[ShiftEnd]
    ) Z
    ON X.[Name]=Z.[Name] AND X.[TIMEID]=Z.[TIMEID]
    WHERE Z.[Name] IS NULL
    ORDER BY X.[Name],X.[TIMEID]
    

向下填充以匹配E列中的值。

enter image description here


¹ E列的自定义数字格式为=IF(COUNTIF(A$1:A1, A1)=1, COUNTIF(A:A, A1), TEXT(,))