Страницы: Пред. 1 2
RSS
Присвоить имя ячейкам, когда их больше тысячи
 
Newser, дело не в количестве ячеек, а в длине строки, из которой состоит адрес объединенного диапазона. Например
адрес: $A$1:$A$100;$B$4;$C$1:$C$100
кол-во ячеек в диапазоне с этим адресом: 201 шт.
длина СТРОКИ адреса: 28 символов (еще и имя листа добавляется, если без VBA именовать)
так вот эта СТРОКА ограничена 255 символами
Согласие есть продукт при полном непротивлении сторон
 
Sanja, теперь понимаю. Блин, мне получить адреса ячеек, тогда был бы диапазон. Как-то можно получить адреса ячеек из диапазона по содержимому? Формула =ЯЧЕЙКА("адрес";Имя) возвращает строкой адреса всех ячеек, соответствующих имени. Такое же бы, но по содержанию из диапазона, типа =ЯЧЕЙКА("адрес", диапазон, критерий). Тогда можно сформировать диапазон из нескольких обращений.
 
За неимением свежих идей, получил адреса по горизонтали и вертикали, а затем сцепил их, создав массив. В принципе годно, но двухмерный массив неудобен, надо его превращать в одномерный. Видел тут темы по схожей задаче. попробую пока работать в этом направлении. У кого есть предложения - предлагайте.
 
Newser, зачем Вам адреса ячеек? В чем высший смысл всего этого? Как присвоить имя диапазону несмежных ячеек с текстом "ППР" Вам показал Сергей (пост #21)
В Диспетчере имен, в строке Диапазон впишите формулу =Лист1!R1C1:R160C51="ППР" и присвойте нужное имя.
Согласие есть продукт при полном непротивлении сторон
 
Sanja, я проверял - не проканал такой метод с несмежными ячейками.

Нужно мне это для сравнения планов и фактов. Ну вот так я вижу, что через имена это можно сделать. Другого способа не нашёл. Пример я сделал в файле, но только планирование (ППР - план приёма), ещё там будет отчет (даты, проставленные в столбцах "факт"). Даты - не даты, а тупо число. Сопоставление с месяцем идёт ниже.
Цитата
Несколько несмежных ячеек содержат одинаковое содержание: Текст
Чтобы работать с диапазоном, я ищу ячейки через Ctrl+F, называю именем МоиЯчейки

Потом формирую =ЯЧЕЙКА("адрес";МоиЯчейки), откуда получаю адреса: A1, C1, D1, A3, C3, D3
Эти адреса находятся в смежных ячейках и через ДВССЫЛ я работаю с ними, как с диапазоном смежных ячеек.
Изменено: Newser - 23.07.2015 11:29:34
 
Так выглядит заполненный квартальный отчёт. Лист 1 содержит сам график, куда пользователь вносит данные, а лист 2 работает с массивами, полученными через имена, данные из этих массивов отображаются в план-отчете под графиком на странице 1
Изменено: Newser - 23.07.2015 13:46:08
 
Лист График.
Так данные хранить нельзя. Это не таблица - это ужас!
Возможно, Вам она понятна. Но Excel'ю - нисколечки! Структура таблицы такая, что ее нельзя обрабатывать нормальными методами
Отсюда и растут ноги Вашей проблемы. Сегодня эта задача, завтра выплывет другая нерешаемая...

Совет: кардинально пересмотреть таблицу.
 
vikttur, экселю она тоже понятна до тех пор, пока нет необходимости её расширить. Как видите, всё меняется и считается. Я не спорю, что несколько извращенно с точки зрения программы, но мы ведь делаем это для пользователя, а не для программы. Вопрос исключительно в том, как работать с таким графиком, когда он больше, чем квартальный.
 
Цитата
мы ведь делаем это для пользователя, а не для программы
Благими намерениями вымощена дорога в ад. Слышали поговорку?
Для экономии средств пользователя можно заливать в бак воду вместо бензина. Но будет ли легче от этого пользователю?
Долго ли живут автомобили, которым скармливают бодяжное топливо?
 
Newser Вам лучше один раз так сказать подолбаться, и сделать как написал Виктор, сделать нормальную для вычислений таблицу. И уже делать отчеты и расчеты из таблицы в которой будет нормальная качественная структура из которой можно будет строить отчеты как Вам захочется. (хоть формулами, хоть сводными таблицами, хоть макросами). А сейчас Вы сами себя загоняете в тупик.
 
alexthegreat, я не представляю, как сделать эту таблицу так же, но иначе. Для каждого прибора отдельно кто принял, отдельно кто выдал, отдельно запчасти? Это не вариант. Никто не станет листать такие простыни и заполнять их. Нужно или выводить модульные окна, типа: "Выберите прибор - Выберете действие - Укажите фамилию", но это 1С или АСОМИ, я с ними не сталкивался лицом к лицу, потому в тот лес и не заглядываю даже.
 
vikttur, вы можете переводить тему хоть на яблоки, но и я могу процитировать вас: «давайте мы сделаем на всех 6ми-дюймовых телефонах кнопки слева, чтобы пальцем правой руки было не дотянуться. Зачем пользователю удобство, если программа считает слева на право и код так проще и проворнее?»
 
Речь об удобстве того же пользователя.
Вот Вы сейчас уперлись в проблему, которая не может возникнуть при нормальной структуре таблицы. Вряд ли это последняя головная боль.
Данные нужно хранить отдельно, для удобства пользователя - таблицы оотдельно.

Цитата
не представляю, как сделать эту таблицу так же, но иначе
Тут вряд ли кто может это себе представить. Для стороннего наблюдателя - нагромождение разных данных, все_в_одном.
Посмотрите небольшой пример. Он не отображает всю таблицу, так как нужно время и объяснения, ЧтоКудаКак. Одна строка - данные по одной записи. Если в одной таблице совместить проблематично, рисуется несколько таблиц.  Так организованы базы данных.

Посмотрите, сколько человек отметилось в теме. Сколько советов от людей, которые на форуме  давно и работают с Excel не один месяц/год. Работают, заметьте, профессионально.
У Вас же только одна мысль - Я СЧИТАЮ, что так правильно, дайте решение.

Из темы ушел. Уговаривать человека, чтобы ему сделать лучше?...
 
Цитата
vikttur написал:
Уговаривать человека, чтобы ему сделать лучше?
Не нужно уговаривать )
 
Для нас, самих сотрудников такая таблица - рай земной, её объяснять даже особо не пришлось. Я же не прошу невозможного - это дело уже работает на трёх месяцах, давайте сделаем так же, но на 12.
Ваш пример содержит дай бог 1% от того, что нужно делать в конечном счёте. Поверьте, я так уже делал и мне не понравилось, что на выходе.

Упростить всегда успею в конце-концов )
 
Цитата
Newser написал:я проверял - не проканал такой метод с несмежными ячейками
У меня "проканал" (см. в файле), только все это действительно каким-то мазохизмом попахивает. Если Вам действительно
Цитата
Newser написал: такая таблица - рай земной
то рекомендую переходить на использование макросов
Согласие есть продукт при полном непротивлении сторон
 
Sanja, попробуйте это имя использовать где-нибудь. СЧЕТЕСЛИ(1:160;ППР) выдаёт 0, хотя должен 360, а ЯЧЕЙКА("адрес";ППР) выдаёт ЗНАЧ!, хотя при рабочем имени выдаёт адреса ячеек.

Макросы - это сложно уже для меня. В крайнем случае, сделаю эту таблицу по участкам на нескольких листах, но это план "Ж", до него есть ещё несколько неопробованных идей, включая план "Г" :)
 
Вариант с именами - это моё личное предположение, как считывать данные из несмежных ячеек и не путать их с данными в других. Если кроме имён есть что-то ещё, то выкладывайте хотя бы ссылками на статьи. Может, есть обход ограничения в 255 символов, тогда можно тоже это проработать.
 
вы противоречите себе
Цитата
Newser написал: Зачем пользователю удобство, если программа считает слева на право и код так проще и проворнее?»
Цитата
Newser написал: Макросы - это сложно уже для меня.
тогда, наверно, лучше сначала познакомиться с программой... и основами программирования
Цитата
Newser написал: экселю она (таблица) тоже понятна до тех пор, пока нет необходимости её расширить.
если xl может объединить любые понравившися вам ячейки и разбросать их по всему листу, где вам нравится - то тут ему может быть понятно лишь то, что вам так нравится и он вам ничем не обязан... если логику работы формул вы не учитываете при расположении данных... а посчитать вам хочется... вопреки логике упорядоченности нач. данных...
...а чтобы не расширять на года люди для этого и создают БД!!, далее настраивая соответствующие запросы для репрезентации нужной по тому или иному вопросу инфо!.. - т е формируют интересующие представления! - ну, не будете же вы интересоваться всем жизненным циклом одной запчасти за раз?? (можно будет отобрать интересующий период и т д)... я тоже не уговариваю, - но до работы с xl - лучше определиться: вы рисовать хотите или считать или автоматизировать или всем зачем-то нужен целый год такой свалки? и зачем?  :) (к слову) мне даже интересно, на сколько вырастут продажи от получения этой инфо в таком виде за целый год, в противовес продажам при отсутствии такой инфо в таком виде на целый год... увеличится ли производительность отдела? лучше прислушайтесь к vikttur:
Цитата
vikttur написал: Данные нужно хранить отдельно, для удобства пользователя - таблицы оотдельно. Так организованы базы данных.
... и лишь продумать доступ к нужной инфо... так было из покон веков удобно работать ITшникам и получать инфо юзерам... и один нюанс:
Цитата
Newser написал: Макросы - это сложно уже для меня.
- не мотивация отказываться от привычных и удобных способов работы с инфо (а то так, как у вас, - даже в глазах рябит)... можете, наверно, поискать счастья в ветке работающих профессионалов (хотя и здесь вам уже высказались профессионалы консультирующие - я бы поверила им на слово - они никогда не подводят, как и xl никогда не подводит - ЕСЛИ с ним разговаривать на его языке логики, а не на своём)...
p.s. тоже не встреваю, лишь советую слышать ответы, а не надеяться на то, что xl  начнёт вдруг работать несвойственным для себя способом... - лучше нач. данные скормите ему в удобоваримой форме (вы ведь тоже не перевариваете всё подряд?)... имхо  
Изменено: JeyCi - 23.07.2015 17:59:40
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
vikttur написал: Уговаривать человека, чтобы ему сделать лучше?..
сообщение #15  :D
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
JeyCi, если я правильно понимаю, то вы предлагаете решение в духе выбор месяца или выбор прибора и получение на него соответствующих данных? Это, конечно, здорово, но оно не будет работать, т.к. сопоставление данных из разных ячеек или диапазонов я могу делать лишь по имени, а с именами у нас ограничение в количество символов.
Цитата
JeyCi написал:
даже интересно, на сколько вырастут продажи от получения этой инфо в таком виде за целый год
Это не продажи, а метрология. Замена документов, которых сейчас таблиц 20 всяких разных (при том рукописных). Цель - сокращение документации и сведение 90% информации в одну таблицу. Кстати, эта таблица будет идти на печать, поэтому ещё важно, чтобы она занимала не 200 листов, а хотя бы 20. В данном виде она отвечает требованиям нашей логики представления данных, объёму, который способна вместить и возможности делать заметки от руки. То, что Excel затыкается после 255 символов - это не мой косяк. Если бы его не было, то никто бы из вас тут не орал, что это ужас и нереализуемо.

----

Отдаю дань уважения пользователю Sanja. Единственный человек, который мне объяснил причину, предложил варианты и не развозил демагогию на тему невозможности запустить то, что и так работает в малых масштабах.
Изменено: Newser - 24.07.2015 07:12:33
 
Вот, кто мастера по упрощению, скажите, как вы получите значения из 2 и 8 ячейки, если у вас есть 9 ячеек с одинаковым содержанием? Лично мне вот проще дать имя 2, 8, 14й и т.д. ячейке, а потом выбрать их через ЯЧЕЙКА(адрес;имя), затем работать, как с диапазоном. По вашей логике эта таблица слишком сложна, её надо разбить на две, а потом создать третью, которая будет отображать значения из первых двух.
202020
2020 20
20 20 20
 
Цитата
Newser написал: То, что Excel затыкается после 255 символов - это не мой косяк. Если бы его не было, то никто бы из вас тут не орал, что это ужас и нереализуемо.
да вы правы - можете считать это косяком Microsoft, только орёте только вы, что это косяк...
Цитата
Newser написал: т.к. сопоставление данных из разных ячеек или диапазонов я могу делать лишь по имени
- потому что сопоставление любых данных не только из разных ячеек, но и разных листов и книг и папок и интернета и файлов др форматов и т д - можно наладить запросами (если данных много - их необязательно пытаться впихнуть все на один лист - чтобы иметь возможность получить репрезентацию нужной инфо в любой момент)...  в запросах  можно организовать всё!! - и отбор и нужную фильтрацию и сортировку и в любом разрезе и любые вычисления и аналитику выводить (отчётом или сводной таблицей) - и не бегать по ячейкам... так работают БД... либо прописывать всё это вручную, как посоветовал Sanja
Цитата
Sanja написал: рекомендую переходить на использование макросов
вот и замечательно, что
Цитата
Newser написал: Отдаю дань уважения пользователю Sanja.
успехов... (все возможные варианты оптимизации вам обозначили)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
Newser написал:
как вы получите значения из 2 и 8 ячейки, если у вас есть 9 ячеек с одинаковым содержанием?
А как идет нумерация ячеек?
1  2  3    
4  5  6    
7  8  9    

1  4  7
2  5  8
3  6  9
Метрология, продажи, БД все равно, что находится в ячейках, данные они и есть данные..
проще сформировать
Цитата
Newser написал:
По вашей логике эта таблица слишком сложна, её надо разбить на две, а потом создать третью, которая будет отображать значения из первых двух.
Есть хранилище данных, в котором все должно быть четко прописано и приведено (желательно) к плоским таблицам, а есть отчетные формы, формы ввода, в которых можно настроить порядок выдачи информации которая будет удобна пользователю.
Задачу необходимо решать с двух сторон - первое вывод (ввод) по форме и данным которые должны там быть, с другой как хранить эти данные чтобы быстро их обрабатывать.

Цитата
Newser написал:
Кстати, эта таблица будет идти на печать, поэтому ещё важно, чтобы она занимала не 200 листов, а хотя бы 20
Таблица с данными может занимать и 500 печатных листов, а форма для пользователя, в которой нужная информация представлена в удобной форме и на 1 уместиться.

С Вашей стороны пока только одна сторона - форма вывода.
Цитата
Newser написал:
уже работает на трёх месяцах, давайте сделаем так же, но на 12
Деревянный дом в два-три этажа стоит, давайте построим небоскреб из дерева?

Цитата
Newser написал:
Это не вариант. Никто не станет листать такие простыни и заполнять их. Нужно или выводить модульные окна, типа: "Выберите прибор - Выберете действие - Укажите фамилию", но это 1С или АСОМИ, я с ними не сталкивался лицом к лицу, потому в тот лес и не заглядываю даже.
Каким образом тогда происходит заполнение? точно так же как и вывод, можно организовать формы ввода удобные пользователям.

К примеру, никто не хранит данные о продажах в листах оформленных как счета-фактуры...
Изменено: ZCaspeR - 24.07.2015 10:55:34 (разлепил таблички)
 
ZCaspeR, есть разница? Ячейки несмежные. Тут их две, там у меня их тысяча, но принцип должен работать один и тот же. Если любой принцип ограничен в 255 символов (это касается и макроса), то мы просто закроем тему с резюме: "программное ограничение".

Вот квартальный отчет (пост #36) - я данные подставляю прямо в таблицу, а двухмерные массивы на листе 2 их обрабатывают и из них значения считываются обратно под таблицу листа 1. Чем не БД? Пользователь видит и заполняет то, что ему нужно и понятно, а работает с этими данными лист 2, одномерные массивы с адресами, двухмерные массивы с данным, обычные самые формулы ввода-вывода. Можно было реализовать другими формулами, но суть-то та же - пользователь видит удобный для себя формат, а Excel работает в удобном для себя.
Изменено: Newser - 24.07.2015 11:27:20
 
Цитата
Newser написал:
Вот квартальный отчет (пост #36) - я данные подставляю прямо в таблицу, а двухмерные массивы на листе 2 их обрабатывают и из них значения считываются обратно под таблицу листа 1
Цитата
ZCaspeR написал:
формы ввода удобные пользователям.
лист "Таблицы" необходимо переделывать под сбор данных для чего это Здесь написано.

по итогам 9 месяцев как смотреть будете?
 
ZCaspeR, так же, как и за три - суммой. Вообще-то за 9 мне не надо, только за каждый месяц, каждый квартал и за год в целом. Но, если надо будет за 9, то суммой 9 ячеек.

Статью по ссылке почитаю на досуге. Предлагайте, кидайте ещё ссылок, если есть. Со страницей Таблицы я готов делать что угодно, даже изменить способ предоставления план-отчета. Лишь бы это всё работало в масштабе одного года так же, как работает на один квартал.
 
В общем, если кто-то когда-то заморочится подобной темой, то знайте — я таки ушёл от имён. Подход к ним можно было реализовать на макросе, создав массив с адресами «as string», но в целом идея с двумерным массивом после пары месяцев работы была реализована. Осталось придумать, как теперь передавать данные в нелинейную таблицу, удобную для чтения пользователем.
Страницы: Пред. 1 2
Наверх