Excel: нужна формула, которая может получить общее количество уникальных значений в диапазоне - PullRequest
0 голосов
/ 08 марта 2011

Пример: A10 = 111, A11 = 101, A12 = 111, A13 = 4, A14 = 101, A15 = пусто.Всего 3 уникальных значения.Мне нужна динамическая формула внутри ячейки, которая может вычислить все уникальные значения.Заготовки будут в заданном диапазоне и не должны быть включены в общий итог.Благодарю.

Ответы [ 3 ]

2 голосов
/ 08 марта 2011

От Microsoft:

Подсчет количества уникальных текстовых и числовых значений в ячейках B2: B10 (не должно содержать пустых ячеек) (7)

=SUM(IF(FREQUENCY(MATCH(B2:B10,B2:B10,0),MATCH(B2:B10,B2:B10,0))>0,1))

http://office.microsoft.com/en-us/excel-help/count-occurrences-of-values-or-unique-values-in-a-data-range-HP003056118.aspx

1 голос
/ 08 марта 2011

Это можно сделать в VBA: http://www.google.com/search?q=VBA+distinct

Если вам нужно сделать это только один раз, вы можете сделать это полу-вручную за пару шагов:

1) Сортировка значений (скажем, в B10-B15)

2) В следующем столбце используйте эту формулу в каждой ячейке: =IF(C10<>B9,C10,""). (Показывайте значение только в том случае, если оно не равно значению над ним.) Это даст вам уникальные значения.

Под «общей суммой» вы подразумеваете сумму или количество различных значений? В любом случае вы можете сделать это с помощью вычисленных значений столбца.

0 голосов
/ 08 ноября 2013

Вы можете использовать этот код VBA, коды хорошо прокомментированы для вас, чтобы понять.

Sub sample_CntDist()
'
' Counting Distinct numbers, not counting blank values presenting count distinct in a cell Macro
'
'
Columns("A:A").Select 'select the column which have numbers
Selection.Copy 'copy the selection
Sheets("Sheet2").Select 'select a new sheet
Range("A1").Select 'select first cell
ActiveSheet.Paste 'paste the copied data
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$A$18").RemoveDuplicates Columns:=1, Header:=xlNo 'remove duplicates
Range("B1").Select 'select cell b1
ActiveCell.FormulaR1C1 = "=COUNTIF(C[-1],""<>"")" 'count distinct number excluding blanks
Sheets("Sheet1").Select 'select original sheet
Range("C2").Select 'select cell c2
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "count distinct " 'give a caption for the result
Range("D2").Select 'select cell d2
Sheets("Sheet2").Select 'select the temp sheet
Selection.Copy 'copy the distinct count
Sheets("Sheet1").Select 'select and paste the result as values
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Visible = False 'hide temp sheet
End Sub

...