Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

13 Декабрь 2017, 17:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: [Решено] Извлечение данных на основе 5 условий  (Прочитано 609 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vk
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 12


« Стартовое сообщение: 22 Июль 2017, 03:43 »

В примере есть формула нужно получить список уникальных (НЕ повторяющихся) значений по нескольким условиям у меня их 5. Уже несколько дней ищу как это сделать подскажите пожалуйста.
Решение:
Вариант 1 Особую благодарность я хочу выразить - JohnSUN за помощь и готовое решение.
Вариант 2 Формула массива

* Test_3.ods (14.61 Кб - загружено 6 раз.)
« Последнее редактирование: 29 Июль 2017, 15:12 от vk » Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 373


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #1: 22 Июль 2017, 13:48 »

Добро пожаловать на форум!
Ты имел в виду что-то вроде этого?

* Test_3_offset.ods (16.19 Кб - загружено 17 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
vk
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 12


« Ответ #2: 22 Июль 2017, 15:04 »

Благодарю за помощь это то что я хотел получить в результате, тут используется связка из двух формул. Вот как нам получить тот же результат только используя 1 формулу?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 373


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #3: 22 Июль 2017, 19:29 »

Так, может, вообще без формул обойтись?

* Test_3_pivot.ods (13.78 Кб - загружено 5 раз.)
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
vk
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 12


« Ответ #4: 22 Июль 2017, 20:04 »

В этом варианте при добавлении нового значения или изменении условий у меня результат не обновляется, а формула автоматически выдавала результат при добавлении нового значения а также при изменении условий. Может есть способ объединить те 2 формулы в одну ячейку с результатом?
Записан
vk
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 12


« Ответ #5: 23 Июль 2017, 00:21 »

Получилось доделать формулу добавил в неё все 5 условий. Но она медленно работает стоит мне добавить новое значение на выполнение уходит 1-2 секунды. Это всего лишь 100 строк а если будет 5000 то время наверное увеличится раз в 10. Я LibreOffice Calc только начал изучать наверное эта формула не самая подходящая. Как её можно усовершенствовать?

Код:
{=ЕСЛИОШИБКА(ИНДЕКС($A$3:$A$100;НАИМЕНЬШИЙ(ЕСЛИ((СЧЁТЕСЛИ($H$1:$H3;$A$3:$A$100)=0)*ЕСЛИ($A$3:$A$100<>"")*($C$3:$C$100="#")*($D$3:$D$100=0)*($E$3:$E$100=0)*($F$3:$F$100=0);СТРОКА($A$1:$A$100));1));"")}

* Test_3.ods (14.74 Кб - загружено 4 раз.)
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 373


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #6: 23 Июль 2017, 13:11 »

...она медленно работает...
Ну, ей же приходится много раз вычислить значение довольно большого массива - для каждой вычисляемой ячейки перелопатить 98 строк данных...
стоит мне добавить новое значение на выполнение уходит 1-2 секунды
Ну, это еще не очень долго.  Подмигивающий
А так ли уж нужно перевыводить список уникальных при каждом изменении в таблице?
Это всего лишь 100 строк а если будет 5000 то время наверное увеличится раз в 10.
... а, может быть, даже больше (5000/100=50)
Как её можно усовершенствовать?
Разделить на две?  Смеющийся В этом случае Calc'у нужно будет считать-пересчитывать гораздо меньше. Если смущает наличие вспомогательной колонки, так ведь её можно в любой момент скрыть.
...при добавлении нового значения или изменении условий у меня результат не обновляется...
Ну, обновление сводной таблицы при изменении исходных данных уже не раз обсуждалось
Может есть способ объединить те 2 формулы в одну ячейку с результатом?
Ты уже убедился, что такой способ есть?  Всё хорошо
Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
vk
Новичок
*
Offline Offline

Пол: Мужской
Сообщений: 12


« Ответ #7: 23 Июль 2017, 15:18 »

Ваша формула с дополнительной колонкой работает идеально буду ей пользоваться а дополнительную колонку скрою.  Всё хорошо
Но теперь возникла необходимость учитывать повторяющиеся значения например если есть в значении 5 5 5 то их нужно вернуть в результат как это сделать?
Записан
JohnSUN
Капитана в тот день называли на "ты"
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Киев
Сообщений: 2 373


Помогаю людям и компьютерам понимать друг друга


WWW
« Ответ #8: 23 Июль 2017, 17:31 »

Убрать из проверки пригодности СЧЁТЕСЛИ()?

PS. Кстати о СЧЁТЕСЛИ() - ты правильно изменил эту проверку, когда "паковал" две формулы в одну: в моём варианте ошибка - если первое из дублирующихся значений первое не прошло проверку по остальным условиям, то и подходящее значение в список результатов не попало бы.
« Последнее редактирование: 23 Июль 2017, 17:47 от JohnSUN » Записан

Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!