Формула SIGN () возвращает неожиданные результаты - PullRequest
0 голосов
/ 09 октября 2018

В продолжение моего предыдущего вопроса: Sumproduct с несколькими критериями в одном диапазоне

Jeeped предоставил мне очень полезную формулу для достижения sumproduct(), которая принимает несколько критериев.Мой текущий случай, однако, немного шире:

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

Первый столбец - это идентификационный номер, второй столбец - группа респондентов (A, B).Заголовки столбцов относятся к типам вопросов (X, Y, Z).

Таблица Q1

|    |   | X | Y | Y | Z | Y |
|----|---|---|---|---|---|---|
| 1  | A | 2 | 2 | 1 |   | 1 |
| 2  | A | 1 | 1 |   |   | 2 |
| 3  | A | 1 | 1 |   |   | 1 |
| 4  | A | 2 | 1 |   |   | 1 |
| 5  | A | 1 | 2 | 1 |   | 1 |
| 6  | A | 1 | 1 |   |   | 1 |
| 7  | A |   |   |   |   |   |
| 8  | A |   |   |   |   |   |
| 9  | A | 1 | 1 |   |   | 1 |
| 10 | A | 2 | 2 | 2 |   | 2 |
| 11 | A |   |   |   |   |   |
| 12 | A | 1 | 2 | 1 |   | 2 |
| 13 | B |   |   |   |   |   |
| 14 | B | 1 | 1 |   |   | 1 |
| 15 | B | 2 | 2 | 1 |   | 1 |

Таблица Q2

|    |   | X | Y | Y | Z | Y |
|----|---|---|---|---|---|---|
| 1  | A | 1 | 2 | 1 |   | 1 |
| 2  | A | 1 | 1 |   |   | 1 |
| 3  | A | 1 | 1 |   |   | 1 |
| 4  | A | 1 | 1 |   |   | 1 |
| 5  | A | 1 | 1 |   |   | 1 |
| 6  | A | 1 | 1 |   |   | 1 |
| 7  | A |   |   |   |   |   |
| 8  | A |   |   |   |   |   |
| 9  | A | 1 | 1 |   |   | 1 |
| 10 | A | 1 | 1 |   |   | 1 |
| 11 | A |   |   |   |   |   |
| 12 | A | 1 | 2 | 1 |   | 1 |
| 13 | B |   |   |   |   |   |
| 14 | B | 1 | 1 |   |   | 1 |
| 15 | B | 1 | 2 | 1 |   | 1 |

Теперь я хочу узнать, сколько раз респондент отвечал 1 (да) на Q2 для каждого типа вопроса (X, Y, Z).Суть в том, что если кто-то ответил 1 (да) в Q1, он должен «переопределить» ответ в Q2, поскольку мы предполагаем, что когда кто-то отвечает «да» в Q1 (реализация меры), его ответ в Q2 (знание указанной меры)должно быть и да.

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

Я использовал следующую формулу (на листе 3): =SUMPRODUCT(SIGN(('Q1'!$C$2:$G$16=1)+('Q2'!$C$2:$G$16=1))*('Q2'!$B$2:$B$16=Blad3!$D5)*('Q2'!$C$1:$G$1=Blad3!E$4)), чтобы получить следующие результаты.

|   | X | Y  | Z |
|---|---|----|---|
| A | 9 | 19 | 0 |
| B | 2 | 4  | 0 |

Для X эти результаты верны, так как есть 91 в таблице Q2.Для Y результаты для B верны, для A, однако, нет, поскольку есть только 9 респондентов, ответы на макс. 2 вопроса приведут к макс. 18, а у нас - 19.

1 Ответ

0 голосов
/ 09 октября 2018

Оказывается, в формуле нет ничего плохого, просто она не подходит для организации этих данных.Если вы посмотрите на строку 5:

Q1

|    |   | X | Y | Y | Z | Y |
|----|---|---|---|---|---|---|
| 5  | A | 1 | 2 | 1 |   | 1 |

Q2

|    |   | X | Y | Y | Z | Y |
|----|---|---|---|---|---|---|
| 5  | A | 1 | 1 |   |   | 1 |

Если мы сжимаем, что везде есть 1 в любом из столбцов Y, мыполучить эту таблицу:

|    |   | X | Y | Y | Z | Y |
|----|---|---|---|---|---|---|
| 5  | A |   | 1 | 1 |   | 1 |

Когда я запрашиваю sumproduct() для этой объединенной таблицы, результат будет 3.

Чтобы предотвратить это, я добавил вспомогательный столбец (между двумя Yи столбец Z) к моим таблицам со следующей формулой: IF(OR(D1=1,E1=1),1,"").Удалил заголовки из столбцов с двойным Y, и повторный запуск запроса дал правильные результаты.

Новая таблица Q1 выглядит следующим образом:

|    |   | X |   |   | Y | Z | Y |
|----|---|---|---|---|---|---|---|
| 1  | A | 2 | 2 | 1 | 1 |   | 1 |
| 2  | A | 1 | 1 |   | 1 |   | 2 |
| 3  | A | 1 | 1 |   | 1 |   | 1 |
| 4  | A | 2 | 1 |   | 1 |   | 1 |
| 5  | A | 1 | 2 | 1 | 1 |   | 1 |
| 6  | A | 1 | 1 |   | 1 |   | 1 |
| 7  | A |   |   |   |   |   |   |
| 8  | A |   |   |   |   |   |   |
| 9  | A | 1 | 1 |   | 1 |   | 1 |
| 10 | A | 2 | 2 | 2 |   |   | 2 |
| 11 | A |   |   |   |   |   |   |
| 12 | A | 1 | 2 | 1 | 1 |   | 2 |
| 13 | B |   |   |   |   |   |   |
| 14 | B | 1 | 1 |   | 1 |   | 1 |
| 15 | B | 2 | 2 | 1 | 1 |   | 1 |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...