1

Для опроса (состоящего из +2000 записей в таблице) мне нужно выполнить сложную операцию с суммами в следующих двух таблицах (упрощенно).

Таблица А:

  |   id    sex
--+---------------
1 |   101    m
2 |   102    w
3 |   103    w
4 |   104    m

Таблица Б:

  |   id    a    b
--+------------------
1 |   101   1    1
2 |   102   1    0
3 |   103   0    0
4 |   104   1    1

Значения атрибута «a» и «b» должны быть да (1) и нет (0). Теперь я хочу подсчитать вхождение значения 1 в столбце «а» для каждого мужчины («м»).

Для этого примера результат будет 2 .

Вы можете использовать этот файл (test.odt) в качестве отправной точки, если вы намереваетесь помочь.

Как бы кто-нибудь это сделал? Возможно ли это даже в Libre Calc или я должен использовать SQL?

1 ответ1

1

Я не сделал тест, но я думаю, что это определенно возможно в Calc. Вам нужна комбинация VLOOKUP и SUMIF, а также знание функций Array.

В основном вы хотите использовать SUMIFS в столбце B таблицы B, ссылаясь на пол с помощью VLOOKUP .

Итак, используя ваши примеры таблиц, в B6 таблицы B:

=SUMIFS(B2:B5; B2:B5; VLOOKUP({A};TableA!$A$2:$B$5; 2)="m")

Я не уверен, является ли правильный синтаксис {A} для работы поиска в виде массива.

Кроме того, вы можете вставить столбец между "id" и "a" в таблице B, использовать VLOOKUP для определения пола, а затем использовать SUMIFS указать, содержит ли (новый) второй столбец "m".

РЕДАКТИРОВАТЬ: отменить это

Похоже, Vlookup нельзя использовать в формулах массива, так что это не работает. Однако попробуйте это в B6:

=SUMPRODUCT(B2:B5*(LOOKUP(A2:A5,Sheet1.A2:Sheet1.A5,Sheet1.B2:Sheet1.B5)="m"))

Таблица A находится на Листе 1, Таблица B на Листе 2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .