Люди пытались в течение долгого времени создать среду редактирования, которая идет вне плоского файла, и все перестали работать в некоторой степени. Самым близким, который я видел, был прототип для Намеренного Программирования Charles Simonyi, но тогда это было понижено до визуального инструмента создания DSL.
, Неважно, как код сохранен или представлен в памяти в конце, это должно быть презентабельным и модифицируемым как текст ( без форматирования, изменяющегося на Вас ), так как это - самый легкий способ, которым мы знаем для выражения большинства абстрактных понятий, которые необходимы для решения проблем путем программирования.
С плоскими файлами Вы получаете это бесплатно, и любой простой текстовый редактор (с поддержкой кодирования правильного символа) будет работать.
=SUM(IF(FREQUENCY(IF(LEN(A2:A10)>0,MATCH(A2:A10,A2:A10,0),""), IF(LEN(A2:A10)>0,MATCH(A2:A10,A2:A10,0),""))>0,1))
http://office.microsoft.com/en-us/excel/HP030561181033.aspx
Вы также можете написать макрос VBA (хотя не уверен, что это то, что вам нужно .)
Что-то вроде (учитывая электронную таблицу с заполненными A1-A11 и пустыми B1-B11):
Sub CountUnique()
Dim count As Integer
Dim i, c, j As Integer
c = 0
count = 0
For i = 1 To 11
Sheet1.Cells(i, 2).Value = Sheet1.Cells(i, 1).Value
c = c + 1
For j = 1 To c
If CDbl(Sheet1.Cells(i, 1).Value) = CDbl(Sheet1.Cells(j, 2).Value) Then
c = c - 1
Exit For
End If
Next j
Next i
' c now equals the unique item count put in the 12'th row
Sheet1.Cells(12, 1).Value = c
End Sub
Попробуйте:
= СУММ (ЕСЛИ (ЧАСТОТА (C2: C2080, C2: C2080)> 0,1))
РЕДАКТИРОВАТЬ: выше будет обрабатывает пустые записи в столбце
Формула у меня работает. Есть несколько вещей, из-за которых это может не работать. Во-первых, все целевые ячейки должны иметь значение. Другой пример, когда это может не сработать, - если у вас есть одна ячейка со значением 31 и другая ячейка с текстовым значением «31». Он распознает их как разные значения.
Вы можете попробовать следующее:
=SUM(IF(FREQUENCY(IF(LEN(B2:B11)>0,MATCH(B2:B11,B2:B11,0),""), IF(LEN(B2:B11)>0,MATCH(B2:B11,B2:B11,0),""))>0,1))
Это формула массива . Вместо того, чтобы нажимать Enter, чтобы подтвердить это, вы должны нажать ctrl + shift + enter.
Отсюда:
Вы также можете просто использовать фильтр для временного отображения уникальных значений и подсчета отфильтрованных значений.