Jump to content

Автоматическая нумерация


aerohost
 Share

Recommended Posts

Можно ли как то сделать автоматическую нумерацию видимых строк ? Допустим таблица имеет 150 пунктов 100 из них скрытых и надо оставшиеся 50 пронумеровать автоматически(1,2,3.. 50) . Может есть какой то код?

 

P.s один пункт может состоять из 5ти объединенных строк , функция row в этом отрабатывает неверно (

 

 

Т.е пункт 1 это одна объединенная  строка

 Пункт 2 это три объединенные строки

Пункт 3 это 6 объединенных строк

Edited by aerohost
Link to comment
Share on other sites

Пример бы посмотреть. Не очень понятно  что именно вы хотите.

В 31.10.2020 в 12:45, aerohost сказал:

Допустим таблица имеет 150 пунктов 100 из них скрытых и надо оставшиеся 50 пронумеровать автоматически

Таблица может иметь скрытые строки если нужно,

Пример:

 

но нумеровать их смысла нет. Так что видимо вы говорите о отчёте? 

В 31.10.2020 в 12:45, aerohost сказал:

P.s один пункт может состоять из 5ти объединённых строк

Это пункт "Объединённых ячеек"  ?image.png.00eac6dda71858fa99dd86f079776c49.png

 

 

 

Или (я надеюсь на это)  Это сгруппированные строки к которым нужно проставить позиции?

Цитата

Таблица, которая: • собирает данные с атрибутов блока • Производит вычисления по объектам «сгруппированным» по имени блока • Передаёт вычисленную позицию (сортировка по алфавиту, в данном случае) в атрибут блока «Позиция» и, в зависимости от условия в ячейке отчёта I4, туда же пишется количество Как бонус, имеется вторая таблица, которая: • Объединяет одинаковые блоки o Сортирует по координате Y (по убыванию) o Потом сортирует по координате Х (по возрастанию) • Пишет, для каждого блока, порядковый номер по заданным условиям, в атрибут «Номер»

Тело файла лежит по ссылке под роликом на YouTube

 

 

 

 

 

Двойная нумерация объектов.zip

  • Like 1
Link to comment
Share on other sites

1570144361_.thumb.png.c2fbda42778eb0103be801731aaca4b0.png

8 часов назад, MCAD сказал:

Пример бы посмотреть. Не очень понятно  что именно вы хотите.

Таблица может иметь скрытые строки если нужно,

Пример:

1570144361_.thumb.png.c2fbda42778eb0103be801731aaca4b0.png

но нумеровать их смысла нет. Так что видимо вы говорите о отчёте? 

Это пункт "Объединённых ячеек"  ?image.png.00eac6dda71858fa99dd86f079776c49.png

 

 

 

Или (я надеюсь на это)  Это сгруппированные строки к которым нужно проставить позиции?

Тело файла лежит по ссылке под роликом на YouTube

 

 

 

 

Двойная нумерация объектов.zip 193 \u043a\u0411 · 1 загрузка

 

Без имени.png2.png3.png

 

Row работает чуть не правильно в моей ситуации 

Edited by aerohost
Link to comment
Share on other sites

29 минут назад, MCAD сказал:

 Если честно, то я не понял какой результат вы ждёте? 

Попробуйте такое объединение.

image.png.7672cbf1059c60d66f64dffb783a5d4f.png

Без имени2.dwg 332 \u043a\u0411 · 1 загрузка

Скройте строки 1,4,9 с помощью ПКМ-->Скрыть строчки  .

 

в столбце А у вас получится 2 , 4 , 6 , а мне надо что бы получилось 1 2 3 

 

Как бы получается надо что бы =off(-1;0)+1 работала только на видимые строчки в таблице, а не на все (которые скрыты) 

 

 

Посмотрите повнимательнее мои предыдущие скрины, там есть скрытые строчки 

Edited by aerohost
Link to comment
Share on other sites

16 минут назад, aerohost сказал:

Посмотрите повнимательнее мои предыдущие скрины, там есть скрытые строчки 

Я не представляю как в А12 получилось 1.

 image.png.bc3a1006193329cbe92e5073d190194e.png

 

Видимо вы владеете какими-то  тайными знаниями

3.png

Link to comment
Share on other sites

В 31.10.2020 в 23:34, aerohost сказал:

Скройте строки 1,4,9 с помощью ПКМ-->Скрыть строчки  .

Как так сделать (через ПКМ) реакцию на обработку строки я не знаю. 

Возможно, как вариант, такой способ рассмотреть

 

Первая строка в "Под диапазоне" не должна быть скрытой

Непонятная нумерация.dwg

Link to comment
Share on other sites

49 минут назад, MCAD сказал:

Как так сделать (через ПКМ) реакцию на обработку строки я не знаю. 

Возможно, как вариант, такой способ рассмотреть

Непонятная нумерация.dwg 299 \u043a\u0411 · 0 загрузок

я так то почти придумал логику но чет не могу доконца доработать, может будут мысли ?

 

 

Нумерация=Если предыдующая строчки имеет высоту равную нулю, то надо найти  вышестоящие не равную нулю и добавить к ней +1 иначе  +1 от выше стоящей 

 

Не могу это реализовать "то надо найти  вышестоящие не равную нулю и добавить к ней +1 иначе"

 

Или делать много iff с проверкой на +1 строку, сначала выщестоящая на одну позицию вверх, потом выщестоящая на две позиции вверх выщестоящая на три позиции вверх...... и так я думаю до +10 хватит...

Edited by aerohost
Link to comment
Share on other sites

Чем не устроил вариант, который выше предложил? 

29 минут назад, aerohost сказал:

"то надо найти  вышестоящие не равную нулю и добавить к ней +1 иначе"

Надо найти ==0 иначе  на "Объединении" споткнётесь 

image.png.0e6083fc50162c0917938b8f366e59b2.png

Непонятная нумерация.dwg

Link to comment
Share on other sites

31 минуту назад, MCAD сказал:

Чем не устроил вариант, который выше предложил? 

Надо найти ==0 иначе  на "Объединении" споткнётесь 

image.png.0e6083fc50162c0917938b8f366e59b2.png

Непонятная нумерация.dwg 303 \u043a\u0411 · 0 загрузок

Моя логика работает, только надо много if, есть мыски как заменить ? image.thumb.png.53ec3593515bb2aa602c9d8d34af61e1.png

=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 by aerohost
Link to comment
Share on other sites

Я так и не понял, чем не устроил пример выше? 

Вам и так и так придётся "скрывать строки" не проще это делать по какому-то признаку? 

Например "НЕ пустая ячейка"

1 час назад, aerohost сказал:

Нумерация=Если предыдующая строчки имеет высоту равную нулю, то надо найти  вышестоящие не равную нулю и добавить к ней +1 иначе  +1 от выше стоящей 

Ну проверить так можно

=height  вернёт высоту строки. Если строка скрыта,  то будет "0"

 

Непонятная нумерация.dwg

Link to comment
Share on other sites

  • 3 weeks later...

Вопрос - вы объединяете или группируете?
Если объединяете, то в чём проблема сделать отдельный столбец, в котором прописать следующу формулу:
 

=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) - ссылается на значение в столбце по которому объединяете в данной строке)
В итоге в данном столбце получатся нужные вам значения)


Если группируете, то создайте дополнительную таблицу, в которой будете объединять)

 

Или у вас вообще не отчёт по выборке объектов?)
Хотя даже если не отчёт, то способ должен сработать)

  • Like 1
Link to comment
Share on other sites

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 by aerohost
Link to comment
Share on other sites

7 минут назад, aerohost сказал:

Можно файл с примерчиком ? что то сложновато для восприятия (((

От вас бы хоть один вопрос с файлом увидеть 😀

  • Haha 1
Link to comment
Share on other sites

5 минут назад, dromandon сказал:

А можно для меня сохранить в весрии 2013 года? :D

;)

 

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

Без имени1.dwg

Edited by aerohost
Link to comment
Share on other sites

 

У меня к сожалению не последняя версия продукта, поэтому формулы в таблицах не поддерживаются ваши, которые скрывают строки)
Но сути дела не должно поменять
Записал формулу в первую ячейку, суть её в следующем:

1. Проверяется не является строка самой первой (т.е. есть ли над ней строки). Если строка является первой, и её высота не равна нулю, то дать ей значение 1, если равно нулю, то 0.
2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей

3. Если высотастроки не равна нули, то значение будет равно максимальному значение вышестоящих ячеек +1

 

Остался косяк только, если скрыть верхнюю строку объединёных ячеек - тут надо продумать алгоритм просто (думаю он есть) и добавить третьей строкой в формулу. Отразил на видео этот косяк)
PS количество строк в ячейке определяется формулой count(), надо от неё думаю плясать, в подборе алгоритма

 

Спойлер

 

Без имени1 (1).dwg

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

13 минут назад, dromandon сказал:

 

У меня к сожалению не последняя версия продукта, поэтому формулы в таблицах не поддерживаются ваши, которые скрывают строки)
Но сути дела не должно поменять
Записал формулу в первую ячейку, суть её в следующем:

1. Проверяется не является строка самой первой (т.е. есть ли над ней строки). Если строка является первой, и её высота не равна нулю, то дать ей значение 1, если равно нулю, то 0.
2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей

3. Если высотастроки не равна нули, то значение будет равно максимальному значение вышестоящих ячеек +1

 

Остался косяк только, если скрыть верхнюю строку объединёных ячеек - тут надо продумать алгоритм просто (думаю он есть) и добавить третьей строкой в формулу. Отразил на видео этот косяк)
PS количество строк в ячейке определяется формулой count(), надо от неё думаю плясать, в подборе алгоритма

 

  Видео (Показать контент)

 

Без имени1 (1).dwg 354 \u043a\u0411 · 0 загрузок

Спасибо, попробую  !

добавлено через 9 минут

UPD. Ну меня все устраивает, работает как мне и хотелось ! Спасибо !

Edited by aerohost
Link to comment
Share on other sites

17 часов назад, dromandon сказал:

2. Если высота строки равна 0, то и значение в ячейчке будет равно значению из ячейки вышестоящей

image.png.ecf7fbd0ceae451a6852361be37e2b2a.png

Вот уж действительно :-)

"Майский жук не знал, что не умеет лететь и поэтому летал"

!!!

  • Haha 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...