Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Автоматическая нумерация строк в Calc (http://forum.oszone.net/showthread.php?t=319501)

WSonic 06-10-2016 12:22 2675543

Автоматическая нумерация строк в Calc
 
Приветствую! Задача стоит точно такая же как в этой заметке: http://machula.ru/avtonumeratsiya-st...ablitsah-word/
За исключением того, что таблица в Calc. Есть ли техническая возможность реализовать такое? Необходимо сделать именно автоматическую нумерацию - чтоб она автоматически обновлялась в зависимости от изменения количества строк в таблице. Т.е вариант с единицей в первой строке с последующим растягиванием ее на остальные строки не совсем удобна, так как лист огромен и вручную такое делать по пять раз в час - это муки.

Причем, в моем случае на одном листе есть три отдельных таблицы со своими формулами. Надо сделать так - чтоб нумерация была независимой в каждой таблице листа.

Спасибо за подсказки.

Iska 06-10-2016 13:30 2675557

WSonic, старый дедовский способ — «1» в ячейке «первой» строки таблицы, «=[Ссылка на ячейку выше]+1» в последующих — сгодится?

WSonic 06-10-2016 13:48 2675565

Iska, Не понял. Я просто не оч хорошо в таблицах волоку. При вводе такой функции все строки ниже "1" нумеруются как "2"
Если в () вводить номер строки которая выше - то это ж рехнуться можно, пока всю таблицу формулами набьешь, а удаление любой строки приводит с сбою всех формул.

Казбек 06-10-2016 13:58 2675570

WSonic,

Is there any function that can number table-rows in Writer

Там, правда, для Writer-а. Но по аналогии, думаю, дело пойдет.

WSonic 06-10-2016 14:04 2675573

Казбек, Да вот, не пошло :cry:

Iska 06-10-2016 14:46 2675593

WSonic, сейчас под рукой нет ни OpenOffice, ни LibreOffice, но принцип будет тот же. Ровно так, как описано по ссылке коллеги Казбек:
Цитата:

In the cell of first row: 1

In the cell of second row: push [F2] introduce: =< A1 > + 1

Select the above cell and copy down. (select the cell not the content).
1. Вносим в ячейку «первой» строки «таблицы» единицу:
Скрытый текст


2. В следующую ниже ячейку вписываем формулу вида «=[Ссылка на ячейку выше]+1»:
Скрытый текст


3. Распространяем формулу от этой ячейки вниз любым способом — протягиванием или методом Копировать/Вставить:
Скрытый текст


4. При удалении/добавлении/вставке строк достаточно выполнить с клавиатуры простые действия: выделить вторую ячейку (и первую с данной формулой), несколько раз нажать Down, удерживая Ctrl-Shift, и нажать Ctrl-D для распространения формулы вниз.

Для меня это наиболее простой и удобный полуавтоматический способ нумерации.

P.S. В Excel'е, начиная с версии Office 2003, появился очень удобный механизм работы со списками (вместо простых диапазонов). Не знаю, есть ли аналогичный механизм в Calc.

Цитата:

Цитата WSonic
Если в () вводить номер строки которая выше - то это ж рехнуться можно, пока всю таблицу формулами набьешь, а удаление любой строки приводит с сбою всех формул. »

При работе с клавиатуры это не выглядит страшным. Ctrl, Alt, Shift, стрелки, Home и End — наше всё.

Казбек 06-10-2016 15:20 2675602

WSonic,

Так же обратите внимание на ссылки, все же удобнее, на мой взгляд, чем перетягивать.
Цитата:

Цитата Iska
Не знаю, есть ли аналогичный механизм в Calc. »

На англоязычных сайтах пишут, что нет.))

a_axe 06-10-2016 15:33 2675606

Цитата:

Цитата Iska
Для меня это наиболее простой и удобный полуавтоматический способ нумерации. »

Обычно возможностей этой нумерации хватает, хотя на мой взгляд не очень удобно пользоваться этим способом, если в процессе работы в таблице удаляются строки, либо нумерация идет несплошная и есть пропуски номерации в пределах таблицы. Тогда можно пользовать функцию СЧЁТЗ (в Calc ей соответствует COUNTA). Тогда на этом этапе
Цитата:

Цитата Iska
2. В следующую ниже ячейку вписываем формулу вида «=[Ссылка на ячейку выше]+1»: »

нужно вбить формулу =СЧЁТЗ(R5C2:R[-1]C)+1 (для Calc должно быть =counta(R5C2:R[-1]C)+1 )
Формула сосчитает количество непустых ячеек от первой ячейки таблицы (это ячейка r5c2) до ячейки на одну выше (r[-1]c) и добавит единичку.

Неудобство - для каждой таблицы адрес первой ячейки (аналог r5c2) свой собственный, и забить его придется руками, правда один раз.
Преимущество - можно удалять строки и нумерацию ненужных ячеек.
При вставке новой строки формулы опять придется протягивать, так что тут преимуществ нет.

Если необходимости в удалении строк нет, лучше пользоваться указанным универсальным способом, т.к. это снижает вероятность ошибки.

WSonic 06-10-2016 15:38 2675608

Iska, Спасибо. Этот метод в итоге работает точно так-же, как я писал выше - 1 в первую ячейку затем тянуть ее вниз с зажатым ctrl. Без всяких формул все нумеруется. Просто думал, что есть такая фича, чтоб действия руками вообще не предпринимать. На таблице с количеством строк под 1000 и двумя десятками столбцов это не совсем удобно

Друзья, спасибо за помощь, но видать это не для моего ума. Старый я для этих формул, не понимаю в них ни шиша.

Iska 06-10-2016 15:55 2675617

Цитата:

Цитата WSonic
Этот метод в итоге работает точно так-же, как я писал выше - 1 в первую ячейку затем тянуть ее вниз с зажатым ctrl. »

В том-то и смысл, что не так же. В описанном мною методе не нужно «тянуть», достаточно выделить от второй ячейки вниз с помощью клавиатуры (что заметно быстрее и меньше вероятность «промахнуться», особенно на 1000 строк) и нажать Ctrl-D.

WSonic 06-10-2016 16:12 2675623

Цитата:

Цитата Iska
достаточно выделить с помощью клавиатуры »

Весь столбец? Да не выходит:
Цитата:

Цитата WSonic
на одном листе есть три отдельных таблицы со своими формулами. Надо сделать так - чтоб нумерация была независимой в каждой таблице листа. »

Т.е грубо таблица выглядит примерно так:
Скрытый текст

В каждой "группе" своя нумерация, и мне хотелось сделать ее автоматической, так как в каждую группу нужно постоянно добавлять или удалять строки.

Iska 06-10-2016 16:39 2675635

Цитата:

Цитата WSonic
Весь столбец? »

Нет, не весь.

Если удалили строку — выделить A3, нажать Ctrl-Shift-Down, нажать Ctrl-D для распространения формулы на выделенный диапазон.

Если вставили строку внутрь таблицы — выделить A3, нажать Ctrl-Shift-Down 3 раза (дабы «пройти» через новую пустую строку), нажать Ctrl-D для распространения формулы на выделенный диапазон.

Если добавили строку в конец таблицы — выделить A3, нажать Ctrl-Shift-Down, отпустить Ctrl, продолжая удерживать Shift, нажать Down (дабы «захватить» ячейку из новой пустой строки), нажать Ctrl-D для распространения формулы на выделенный диапазон.

Для второй таблицы выделять нужно будет A11, для третьей — A19. Естественно, в A2, A10, A18 должна быть «1», а в нижележащих ячейках строк каждой из таблиц — формула вида =ссылка на вышестоящую ячейку+1.


К сожалению, целиком и полностью автоматической нумерации, не привязанной к конкретной ячейке, не сделать.

Charg 06-10-2016 17:30 2675643

WSonic, перемотай страницу в самый низ, выдели последнюю ячейку где должен быть порядковый номер и нажми ctrl + shift + home

Изначально хотел посоветовать ctrl+shift+end и выделять с самой первой ячейки, но так не работает (в экселе по крайней мере), видимо потому что строки генерируются на лету, т.к. пробовал я на пустом листе. У тебя может и сработает.

Iska 06-10-2016 19:10 2675667

Цитата:

Цитата Charg
выдели последнюю ячейку где должен быть порядковый номер и нажми ctrl + shift + home »

И мы получим выделение до A1. А не докуда потребно. Что в Excel, что в Calc.

Но иногда выделение вверх бывает полезно. Например, мы ввели в B4 «1», в B5 — формулу «=B4+1», текущая ячейка — B5. Надо распространить формулу вниз на пустые ячейки, вплоть до B19 включительно:
Скрытый текст

Как тут удобнее действовать — ячейки-то пустые? Можно, конечно, выделить мышкой (легко в примере, но для тысячи строк несколько затруднительно). Можно Shift-PgDn/Down*N раз. А можно использовать выделение до непустой ячейки вверх, воспользовавшись для перемещения до потребного места вниз тем фактом, что справа в столбце C есть непустые ячейки как раз до потребной нам строки. Итак: Right (текущая ячейка — C5), Ctrl-Down (C19), Left (B19), Ctrl-Shift-Up (выделение — B5:B19, текущая ячейка — B19), и Ctrl-D:
Скрытый текст

Charg 07-10-2016 09:10 2675837

Цитата:

Цитата Iska
И мы получим выделение до A1. А не докуда потребно. Что в Excel, что в Calc. »

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

Iska 07-10-2016 09:25 2675842

Цитата:

Цитата Charg
и несколько ячеек сверху очистить если вдруг нумерация начинается со, скажем, А4. »

Угу, угу. А если с AE548 — это сколько тысяч ячеек очищать придётся? А если там были не пустые ячейки, а как у коллеги WSonic — другие таблицы? Что с ними будет — аля-улю?!


Время: 08:31.

Время: 08:31.
© OSzone.net 2001-