2015-02-09 4 views
-3

Предположим, у меня есть набор данных из п строк:Как рассчитать количество уникальных имен в строке excel?

happy sad happy   hello sad happy 
random  check check random   random 
... 

мне нужно подсчитать уникальные значения в строке, пустые ячейки не должны учитываться.
В приведенном выше примере первый ряд должен дать 3 в качестве ответа, второй строке должен дать мне 2.

Данные в строках, и я не могу транспонировать.
Просьба представить предложения в excel/sql/r.

+0

Если вы знаете, как получить данные в R (скажем, data.frame), это вопрос ˙apply (x, MARGIN = 1, function (m) length (unique (m))), то есть предполагая, что количество имен в строке является постоянным. Если нет, некоторые другие структуры, такие как список, могут быть более удобными. Это немного изменится - вместо 'apply' вы будете использовать' lapply'. –

ответ

1

Если A1: G1 ваша строка данных, то это один из способов:

=SUM(IF(FREQUENCY(IF(LEN(A1:G1)>0,MATCH(A1:G1,A1:G1,0),""), IF(LEN(A1:G1)>0,MATCH(A1:G1,A1:G1,0),""))>0,1)) 

Что я делаю здесь дисконтирование любой ячейки, которая появляется несколько раз, используя IF. Этим ячейкам присваивается значение 0. Те, которые не повторяются, присваиваются значение 1. Тогда я суммирую их. LEN заставляет формулу пропускать пустые ячейки.

Обратите внимание, что это массив : вам нужно использовать Ctrl + Shift + Return, когда вы ввели его в ячейку.

+0

Это решение сработало. – gourish39

+1

Но напишите формулу, чтобы вы знали, как это работает. Это одна из тех формул, которые вы передаете в память через много лет! – Bathsheba

Смежные вопросы