Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2011, 22:26   #1
Марча
 
Регистрация: 23.01.2011
Сообщений: 8
По умолчанию Сортировка цифр в ячейке

Может ли Эксель сортировать цифры, разделённые запятыми, в одной ячейке?
Пример: ул. Ленина 41 - 5, 18, 20, 98, 6, 7, 14, ...
Данные в ячейку вводятся постепенно в течении месяца. Подсчитывать количество квартир в одной ячейке научилась, но для удобства при составлении отчета хотелось бы отсортировать их по порядку.
Марча вне форума Ответить с цитированием
Старый 29.01.2011, 23:06   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Да, может. При помощи пользовательской функции

Прикрепите файл с 10-100 подобными строками - чтобы было на чем тестировать функцию
EducatedFool вне форума Ответить с цитированием
Старый 30.01.2011, 00:09   #3
Марча
 
Регистрация: 23.01.2011
Сообщений: 8
По умолчанию

В столбце "Е" (в оригинальном файле) у меня макрос, который подсчитывает количество запятых (то есть квартир) по каждому дому.
На данном сайте отправляю файл первый раз, поэтому заранее извиняюсь, если что-то у меня не получится.
Вложения
Тип файла: zip образец.zip (17.0 Кб, 31 просмотров)
Марча вне форума Ответить с цитированием
Старый 30.01.2011, 00:23   #4
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

количество запятых можно подсчитать и формулой (без макроса):
Код:
=ДЛСТР(B2)-ДЛСТР(ПОДСТАВИТЬ(B2;",";""))
MCH вне форума Ответить с цитированием
Старый 30.01.2011, 00:28   #5
Марча
 
Регистрация: 23.01.2011
Сообщений: 8
По умолчанию

А ведь получилось!
Где ж Вы раньше были? :-)))))
Марча вне форума Ответить с цитированием
Старый 30.01.2011, 00:37   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Хорошо, что я попросил сначала файл, а не сразу взялся за макрос...

То, что у вас есть в строках 48 и 49 - макросу не понравится (точнее, макрос можно написать любой, и с учётом разноса данных на несколько строк - но слишком уж много кода получится...

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

В вашем же случае, можно сказать, данные вообще не поддаются обработке.

Если будете и впредь так составлять таблицы - придётся потратить несколько месяцев на профессиональное изучение макросов.
(в данном случае мне потребуется не меньше часа, чтобы написать подобный код)
А если вы захотите что-нибудь чуточку поменять в структуре таблицы - код придётся переписывать заново.

Предлагаю хранить данные в таком виде:



В этом случае и формулы упростятся, и макросов никаких не нужно будет
EducatedFool вне форума Ответить с цитированием
Старый 30.01.2011, 01:06   #7
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
В этом случае и формулы упростятся, и макросов никаких не нужно будет
И сортировка делается в несколько кликов мышки.
Для примера записал макрорекордером, с небольшой доработкой
Вложения
Тип файла: rar Sample__30-01-2011.rar (7.7 Кб, 33 просмотров)
MCH вне форума Ответить с цитированием
Старый 30.01.2011, 09:59   #8
Марча
 
Регистрация: 23.01.2011
Сообщений: 8
По умолчанию

for MCH и EducatedFool.
Спасибо за помощь. Макрос (его нашла на сайте - он подсчитывал количество согласных и гласных в словах. Подумав (я ведь не программист), заменила перечисление букв запятой - и он заработал) заменила сразу. А то "добадывало" сообщение о макросах при открытии файла. Tks MCH.
Насчет формы таблицы (в данном случае - дефектной ведомости). Его ведь придумала не я. Именно в таком виде сдаю отчет в ОТиЗ. Да и то... пара месяцев ушло на уламывание бухгалтерии, чтобы принимали его в "машинописном" виде. Другие мастера вообще пишут отчеты от руки ни типовых бланках.
Марча вне форума Ответить с цитированием
Старый 30.01.2011, 10:26   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Именно в таком виде сдаю отчет в ОТиЗ.
Тот вид таблицы, который я предложил, удобен для заполнения, анализа и всяких сортировок.
А из этой таблицы легко уже макросом (или формулами, сводной таблицей) получить желаемый вид на отдельном листе, который вы будете отправлять в ОТиЗ
EducatedFool вне форума Ответить с цитированием
Старый 30.01.2011, 10:47   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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

Последний раз редактировалось IgorGO; 30.01.2011 в 10:49.
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка цифр в числе. _FENDER_ Помощь студентам 4 28.12.2010 01:16
Сортировка цифр.значений в таблице scaramanga Microsoft Office Excel 5 16.03.2010 13:23
перенабор цифр в ячейке vostok Microsoft Office Excel 4 20.01.2010 11:21
Сумма цифр числа в ячейке Arlen Microsoft Office Excel 9 16.05.2009 12:10
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн OTLi4HO Общие вопросы C/C++ 6 14.01.2009 19:48