aerohost Posted October 31, 2020 Report Share Posted October 31, 2020 (edited) Можно ли как то сделать автоматическую нумерацию видимых строк ? Допустим таблица имеет 150 пунктов 100 из них скрытых и надо оставшиеся 50 пронумеровать автоматически(1,2,3.. 50) . Может есть какой то код? P.s один пункт может состоять из 5ти объединенных строк , функция row в этом отрабатывает неверно ( Т.е пункт 1 это одна объединенная строка Пункт 2 это три объединенные строки Пункт 3 это 6 объединенных строк Edited October 31, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted October 31, 2020 Report Share Posted October 31, 2020 Пример бы посмотреть. Не очень понятно что именно вы хотите. В 31.10.2020 в 12:45, aerohost сказал: Допустим таблица имеет 150 пунктов 100 из них скрытых и надо оставшиеся 50 пронумеровать автоматически Таблица может иметь скрытые строки если нужно, Пример: но нумеровать их смысла нет. Так что видимо вы говорите о отчёте? В 31.10.2020 в 12:45, aerohost сказал: P.s один пункт может состоять из 5ти объединённых строк Это пункт "Объединённых ячеек" ? Или (я надеюсь на это) Это сгруппированные строки к которым нужно проставить позиции? Цитата Таблица, которая: • собирает данные с атрибутов блока • Производит вычисления по объектам «сгруппированным» по имени блока • Передаёт вычисленную позицию (сортировка по алфавиту, в данном случае) в атрибут блока «Позиция» и, в зависимости от условия в ячейке отчёта I4, туда же пишется количество Как бонус, имеется вторая таблица, которая: • Объединяет одинаковые блоки o Сортирует по координате Y (по убыванию) o Потом сортирует по координате Х (по возрастанию) • Пишет, для каждого блока, порядковый номер по заданным условиям, в атрибут «Номер» Тело файла лежит по ссылке под роликом на YouTube Двойная нумерация объектов.zip 1 Quote Link to comment Share on other sites More sharing options...
aerohost Posted October 31, 2020 Author Report Share Posted October 31, 2020 (edited) 8 часов назад, MCAD сказал: Пример бы посмотреть. Не очень понятно что именно вы хотите. Таблица может иметь скрытые строки если нужно, Пример: но нумеровать их смысла нет. Так что видимо вы говорите о отчёте? Это пункт "Объединённых ячеек" ? Или (я надеюсь на это) Это сгруппированные строки к которым нужно проставить позиции? Тело файла лежит по ссылке под роликом на YouTube Двойная нумерация объектов.zip 193 \u043a\u0411 · 1 загрузка Row работает чуть не правильно в моей ситуации Edited October 31, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted October 31, 2020 Report Share Posted October 31, 2020 Если честно, то я не понял какой результат вы ждёте? Попробуйте такое объединение. Без имени2.dwg Quote Link to comment Share on other sites More sharing options...
aerohost Posted October 31, 2020 Author Report Share Posted October 31, 2020 (edited) 29 минут назад, MCAD сказал: Если честно, то я не понял какой результат вы ждёте? Попробуйте такое объединение. Без имени2.dwg 332 \u043a\u0411 · 1 загрузка Скройте строки 1,4,9 с помощью ПКМ-->Скрыть строчки . в столбце А у вас получится 2 , 4 , 6 , а мне надо что бы получилось 1 2 3 Как бы получается надо что бы =off(-1;0)+1 работала только на видимые строчки в таблице, а не на все (которые скрыты) Посмотрите повнимательнее мои предыдущие скрины, там есть скрытые строчки Edited October 31, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted October 31, 2020 Report Share Posted October 31, 2020 16 минут назад, aerohost сказал: Посмотрите повнимательнее мои предыдущие скрины, там есть скрытые строчки Я не представляю как в А12 получилось 1. Видимо вы владеете какими-то тайными знаниями Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 2, 2020 Report Share Posted November 2, 2020 В 31.10.2020 в 23:34, aerohost сказал: Скройте строки 1,4,9 с помощью ПКМ-->Скрыть строчки . Как так сделать (через ПКМ) реакцию на обработку строки я не знаю. Возможно, как вариант, такой способ рассмотреть Первая строка в "Под диапазоне" не должна быть скрытой Непонятная нумерация.dwg Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 2, 2020 Author Report Share Posted November 2, 2020 (edited) 49 минут назад, MCAD сказал: Как так сделать (через ПКМ) реакцию на обработку строки я не знаю. Возможно, как вариант, такой способ рассмотреть Непонятная нумерация.dwg 299 \u043a\u0411 · 0 загрузок я так то почти придумал логику но чет не могу доконца доработать, может будут мысли ? Нумерация=Если предыдующая строчки имеет высоту равную нулю, то надо найти вышестоящие не равную нулю и добавить к ней +1 иначе +1 от выше стоящей Не могу это реализовать "то надо найти вышестоящие не равную нулю и добавить к ней +1 иначе" Или делать много iff с проверкой на +1 строку, сначала выщестоящая на одну позицию вверх, потом выщестоящая на две позиции вверх выщестоящая на три позиции вверх...... и так я думаю до +10 хватит... Edited November 2, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 2, 2020 Report Share Posted November 2, 2020 Чем не устроил вариант, который выше предложил? 29 минут назад, aerohost сказал: "то надо найти вышестоящие не равную нулю и добавить к ней +1 иначе" Надо найти ==0 иначе на "Объединении" споткнётесь Непонятная нумерация.dwg Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 2, 2020 Author Report Share Posted November 2, 2020 (edited) 31 минуту назад, MCAD сказал: Чем не устроил вариант, который выше предложил? Надо найти ==0 иначе на "Объединении" споткнётесь Непонятная нумерация.dwg 303 \u043a\u0411 · 0 загрузок Моя логика работает, только надо много if, есть мыски как заменить ? =iff(off(-1;13)==0;iff(off(-2;13)==0;iff(off(-3;13)==0;iff(off(-4;13)==0;off(-1;0)+1;off(-1;0));off(-1;0));off(-1;0));off(-1;0)+1) Edited November 2, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 2, 2020 Report Share Posted November 2, 2020 Я так и не понял, чем не устроил пример выше? Вам и так и так придётся "скрывать строки" не проще это делать по какому-то признаку? Например "НЕ пустая ячейка" 1 час назад, aerohost сказал: Нумерация=Если предыдующая строчки имеет высоту равную нулю, то надо найти вышестоящие не равную нулю и добавить к ней +1 иначе +1 от выше стоящей Ну проверить так можно =height вернёт высоту строки. Если строка скрыта, то будет "0" Непонятная нумерация.dwg Quote Link to comment Share on other sites More sharing options...
dromandon Posted November 18, 2020 Report Share Posted November 18, 2020 Вопрос - вы объединяете или группируете? Если объединяете, то в чём проблема сделать отдельный столбец, в котором прописать следующу формулу: =select( off(0;-2)==off(-1;-2); off(-1;0); off(0;-2)!=off(-1;-2); max(0;off(-1;0))+1; True;1) где off(0;-2) - ссылается на значение в столбце по которому объединяете в данной строке) В итоге в данном столбце получатся нужные вам значения) Если группируете, то создайте дополнительную таблицу, в которой будете объединять) Или у вас вообще не отчёт по выборке объектов?) Хотя даже если не отчёт, то способ должен сработать) 1 Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 18, 2020 Author Report Share Posted November 18, 2020 (edited) 3 часа назад, dromandon сказал: Вопрос - вы объединяете или группируете? Если объединяете, то в чём проблема сделать отдельный столбец, в котором прописать следующу формулу: =select( off(0;-2)==off(-1;-2); off(-1;0); off(0;-2)!=off(-1;-2); max(0;off(-1;0))+1; True;1) =select( off(0;-2)==off(-1;-2); off(-1;0); off(0;-2)!=off(-1;-2); max(0;off(-1;0))+1; True;1) где off(0;-2) - ссылается на значение в столбце по которому объединяете в данной строке) В итоге в данном столбце получатся нужные вам значения) Если группируете, то создайте дополнительную таблицу, в которой будете объединять) Или у вас вообще не отчёт по выборке объектов?) Хотя даже если не отчёт, то способ должен сработать) объединяю Можно файл с примерчиком ? что то сложновато для восприятия ((( Edited November 18, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 18, 2020 Report Share Posted November 18, 2020 7 минут назад, aerohost сказал: Можно файл с примерчиком ? что то сложновато для восприятия ((( От вас бы хоть один вопрос с файлом увидеть 😀 1 Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 18, 2020 Author Report Share Posted November 18, 2020 4 минуты назад, MCAD сказал: От вас бы хоть один вопрос с файлом увидеть 😀 Убедил) Без имени1.dwg Quote Link to comment Share on other sites More sharing options...
dromandon Posted November 18, 2020 Report Share Posted November 18, 2020 24 минуты назад, aerohost сказал: Убедил) Без имени1.dwg 337 \u043a\u0411 · 2 загрузки А можно для меня сохранить в весрии 2013 года? Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 18, 2020 Author Report Share Posted November 18, 2020 (edited) 5 минут назад, dromandon сказал: А можно для меня сохранить в весрии 2013 года? Суть в том, что таблица на все случаи жизни, но не все строки всегда используются. Надо что бы столбец А сам правильно нумеровался, при скрытых строчках Без имени1.dwg Edited November 18, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
dromandon Posted November 18, 2020 Report Share Posted November 18, 2020 У меня к сожалению не последняя версия продукта, поэтому формулы в таблицах не поддерживаются ваши, которые скрывают строки) Но сути дела не должно поменять Записал формулу в первую ячейку, суть её в следующем: 1. Проверяется не является строка самой первой (т.е. есть ли над ней строки). Если строка является первой, и её высота не равна нулю, то дать ей значение 1, если равно нулю, то 0. 2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей 3. Если высотастроки не равна нули, то значение будет равно максимальному значение вышестоящих ячеек +1 Остался косяк только, если скрыть верхнюю строку объединёных ячеек - тут надо продумать алгоритм просто (думаю он есть) и добавить третьей строкой в формулу. Отразил на видео этот косяк) PS количество строк в ячейке определяется формулой count(), надо от неё думаю плясать, в подборе алгоритма Спойлер B4WI3sh12F.mp4 Без имени1 (1).dwg 1 1 Quote Link to comment Share on other sites More sharing options...
aerohost Posted November 18, 2020 Author Report Share Posted November 18, 2020 (edited) 13 минут назад, dromandon сказал: У меня к сожалению не последняя версия продукта, поэтому формулы в таблицах не поддерживаются ваши, которые скрывают строки) Но сути дела не должно поменять Записал формулу в первую ячейку, суть её в следующем: 1. Проверяется не является строка самой первой (т.е. есть ли над ней строки). Если строка является первой, и её высота не равна нулю, то дать ей значение 1, если равно нулю, то 0. 2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей 3. Если высотастроки не равна нули, то значение будет равно максимальному значение вышестоящих ячеек +1 Остался косяк только, если скрыть верхнюю строку объединёных ячеек - тут надо продумать алгоритм просто (думаю он есть) и добавить третьей строкой в формулу. Отразил на видео этот косяк) PS количество строк в ячейке определяется формулой count(), надо от неё думаю плясать, в подборе алгоритма Видео (Показать контент) B4WI3sh12F.mp4 4 \u041c\u0411 · 0 загрузок Без имени1 (1).dwg 354 \u043a\u0411 · 0 загрузок Спасибо, попробую ! добавлено через 9 минут UPD. Ну меня все устраивает, работает как мне и хотелось ! Спасибо ! Edited November 18, 2020 by aerohost Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 19, 2020 Report Share Posted November 19, 2020 17 часов назад, dromandon сказал: 2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей Вот уж действительно :-) "Майский жук не знал, что не умеет лететь и поэтому летал" !!! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.