Автозаполнение таблицы по условию заполнения ячеек

Автор AlfA, 28 марта 2018, 19:46

0 Пользователи и 1 гость просматривают эту тему.

tagezi

Цитата: Bigor от 29 марта 2018, 16:53
Цитата: tagezi от 29 марта 2018, 14:51тык  Смеющийся тык  Смеющийся
:) я исправился ниже в PS
Ой, не видел.
Да и пример я только вот посмотрел нормально.

Там кстати напрашивается:
Цитировать=MATCH("[:digit:].*";Прайс.$F$2:$F$8;0)
В этом случае оно будет искать любые цифры, а не только единицы. И можно будет потом этот прайс обсчитывать.
Если конечно хочется иметь возможность, потом когда-нибудь, продавать "лампочки" и "масло".
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

bigor

в видео была единица, поэтому с ней и делал
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

AlfA

Цитата: Bigor от 29 марта 2018, 13:33
b2 - содержит номер строки из ссылки
1- номер столбца из ссылки
1- индекс диапазона из ссылки
номер столбца при этом, на сколько понимаю, указывать не обязательно, т.к. он единственный?
индекс диапазона из ссылки.. можно попросить раскрыть описание, как работает, для чего нужен, что делает )) заранее спасибо! )

tagezi, да, действительно даже не обратил внимания, пока пальцем не ткнули ))
Ну и с этого момента, впринципе, все встало на свои места.

Ну и раз уж так все гладко пошло, подскажите, если лист с данными не один, а несколько, задача сильно усложняется?)

bigor

Цитата: AlfA от 29 марта 2018, 17:57номер столбца при этом, на сколько понимаю, указывать не обязательно, т.к. он единственный?
Да, достаточно 2-х параметров ссылки и номера строки

С несколькими листами сложнее, хотя вчера мне и с одним листом задача казалась сложной :)
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

tagezi

Цитата: AlfA от 29 марта 2018, 17:57Ну и раз уж так все гладко пошло, подскажите, если лист с данными не один, а несколько, задача сильно усложняется?)
Цитата: Bigor от 29 марта 2018, 18:14С несколькими листами сложнее, хотя вчера мне и с одним листом задача казалась сложной Улыбка
Решаем задачу для каждого листа по отдельности, потом объединяем их.
Ну, хотя конечно, можно упереться рогом и решить всё в кучу. А нужно?
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

bigor

Да проще сделать как tagezi советует, для каждого листа с данными делаем заявку, а потом сливаем их в одну.
А иначе рог можно сломать :)
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

celler

А с помощью матриц не проще? Кстати, почему у меня крашится LibreOffice если во втором ROW попытаться удалить содержимое скобок?

rami

Удалял из второго ROW и из обоих, нормально работает вот так: {=IFERROR(INDEX(A2:A8;SMALL(IF(F2:F8=1;ROW( )-1;"");ROW()-1));"")}

Какой у вас офис? У меня LO 5.0.6

kompilainenn

либра крэш репорт отправляет? шаги для повторения есть четкие? отпишитесь на багзиллу, если да/да
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

celler

#24
rami
У меня тоже этот был, но я затем проинсталлировал 6.0.2.1 (x64) и на обоих одно и тоже. У меня крашится даже если попытаться сделать матричную функцию всего лишь с одним ROW(). Может от Windows ещё зависит - у меня немецкий 8.1.

kompilainenn
Либра пытается отправить крэш репорт, но я пока не разрешаю.

rami

Цитата: celler от 30 марта 2018, 17:22А с помощью матриц не проще?
Цитата: celler от 30 марта 2018, 18:16У меня крашится даже если попытаться сделать матричную функцию всего лишь с одним ROW().
С первого раза не понял о каких матрицах вы говорите, в русскоязычном офисе это называется "формула массива".

Если убрать ссылки из ROW(), нельзя будет переносить формулы на другое место (будут показывать не правильно)

celler

rami
С первого раза не понял о каких матрицах вы говорите, в русскоязычном офисе это называется "формула массива".

Прошу прощения, у нас в LibreOffice там птичка Matrix,- так вот и обозвал.

Если убрать ссылки из ROW(), нельзя будет переносить формулы на другое место (будут показывать не правильно)

Во втором ROW() из формулы, насколько я понимаю, ссылка совсем не нужна - она относится к строкам результата. Я после своих экспериментов оставил и выложил не совсем корректный вариант. Там правильнее была бы формула {=IFERROR(INDEX(A2:A8;SMALL(IF(F2:F8=1;ROW(A2:A8)-1;"");ROW(I2:I8)-1));"")}, если без ссылки никак не получается. А при переносе формул в любом случае нужно будет при необходимости корректировать количество вычитаемых строк, находящихся выше зоны результатов.

tagezi

Цитата: celler от 30 марта 2018, 19:08у нас в LibreOffice там птичка Matrix
Не знаю про птичке в вашем LibreOffice, но в справке на английском это Array Functions.

Цитата: celler от 30 марта 2018, 19:08А при переносе формул в любом случае нужно будет при необходимости корректировать количество вычитаемых строк, находящихся выше зоны результатов.
Проблема с формулами массива в том, что при незначительном расширении, работы может быть намного больше. Вместо того, чтобы просто взять и растянуть формулу, нужно её переделывать.
Кроме того, вариант, предложенный Bigor, очень просто расширяется во все стороны куда пожелаешь, без переделок основных формул.
Я не говорю, что ваш вариант не правильный, просто он в данном случае создает человеку дополнительные сложности, на мой взгляд. Но имеет право быть :)
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha

rami

Если вы смотрели видео, то там такая "красота", что я не смог понять что нужно делать. Любые наши решения автору вопроса прийдётся адаптировать под свою "красоту". Желательно такое решение, чтобы можно было просто переносить формулы в любое место на любой лист и растягивать диапазоны без утомительных корректировок. Я сделал решение с дополнительным столбцом id:

tagezi

#29
Решений по сути может быть просто не мерено.
Вот простой пример с элементарными формулами. Если нужно печатать, то третий столбец не будет виден. А всё остальное оно делает. Только нужно отсортировать, буквально клацнуть на кнопке... но при этом позволяет дополнительно без геморроя отсортировать по цене, имени и тд. Только крестиком не вышивает  :-[
Плохой вариант решения?  :roll:

ЗЫ: Каждый использует то что ему удобно под конкретные нужды. :)

UDP: Кстати, это можно даже на первом листе провернуть, вообще без формул, прям в той таблице, если второй лист только конечного результата нужен.
(x86_64) Kubuntu 16.04.3 - LibreOffice 6.0.2 / 6.1 alpha