Текстовые и числовые значения в сводных таблицах в Excel - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть таблица в Excel, которая выглядит следующим образом:

  Name      QuestionID      Answer
  A         1               Shoes
  B         1               Coats
  A         2               1983
  B         2               1978

Я хочу создать таблицу, которая выглядит следующим образом:

  Name        1        2
  A          Shoes     1983
  B          Coats     1978   

Я пытался создать сводную таблицуtable, где «Name» - строка, «QuestionID» - столбец, а «Answer» - значение.Но значения должны быть агрегированы, поэтому я получаю нечто числовое, а не просто текст или цифры в «Ответах».Я не понимаю, как просто отображать только значения, а не какую-то обработанную версию значений.

Любая помощь будет очень признательна!

1 Ответ

0 голосов
/ 15 февраля 2019

Вот почему я никогда не использую сводные таблицы ... кажется, что они никогда не делают то, что мне нужно.

Предполагая, что вы можете вручную создать уникальный отдельный список для столбца строки и имени заголовка,или автоматически (см. уникальный отдельный список )

Вы можете просто использовать следующую формулу в таблице для поиска:

=INDEX($C$2:$C$5,SUMPRODUCT(($A$2:$A$5=$E2)*($B$2:$B$5=F$1)*ROW($C$2:$C$5))-ROW($C$1))

Где

Исходная таблица в формате A1: C5

Таблица результатов - имя столбца E1: E3

Заголовки (для вопросов) находятся в ячейках F1: G1


Если разбить его, это просто INDEX поиск в таблице

=INDEX($C$2:$C$5,SOME_ROW)

Где SOME_ROW определяется как

SUMPRODUCT(($A$2:$A$5=$E2)*($B$2:$B$5=F$1)*ROW($C$2:$C$5))

Сломая SUMPRODUCT, мы просто создаем набор списков из 1 и 0 (или True / False) для критериев поиска.

Первый столбец, который должен соответствоватьName определяется как ($A$2:$A$5=$E2)

Второй столбец, соответствующий Question, определяется как ($B$2:$B$5=F$1)

Умножение двух списков вместе, когдаName = A & Question =1 вы получаете

(A,B,A,B) * (1,1,2,2) (1,0,1,0) * (1,1,0,0) = (1,0,0,0)

Третий список (с которым мы умножим полученный результат) из SUMPRODUCT, этофактическая строка;это определяется ROW($C$2:$C$5), поэтому мы получаем:

(1,0,0,0) * (2,3,4,5) = (2,0,0,0)

Теперь мы SUM PRODUCTS результата:

2 + 0 + 0 + 0 = 2

Итак, фактический результат в Row 2;Да!

... но у нас есть проблема;в функции INDEX массив начинается со строки 2, поэтому, если мы укажем 2 для row number, мы фактически получим значение из строки 3 из-за смещения начальной строки.

Здесь -ROW($C$1) входит;исправить смещение строки.Он должен указывать на ячейку в строке заголовка.

Это гораздо проще, чем выглядит ...

...