Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Сортировка в Excel Добавлено: 23.06.07 21:37  

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

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Marki



Вопросов: 42
Ответов: 94
 Профиль | | #1 Добавлено: 24.06.07 20:48
Можно написать собственную функцию.
Входящие данные - список данных и номер строки, из ячейки которой эта функция вызывается.
В теле функции - сортировка данных любым алгоритмом (собственным или известным), и затем отображение данных с индеком, соответствующим номеру строки (т.е. возвращение функцией одного значения, выбранного из отсортированного списка).

Ответить

Номер ответа: 2
Автор ответа:
 Сергей



Вопросов: 2
Ответов: 8
 Профиль | | #2 Добавлено: 24.06.07 21:20
На самом деле всё намного проще, можно применить функции НАИБОЛЬШИЙ и НАИМЕНЬШИЙ.
Marki а можно поподробнее, как написать собственную функцию?

Ответить

Номер ответа: 3
Автор ответа:
 Marki



Вопросов: 42
Ответов: 94
 Профиль | | #3 Добавлено: 24.06.07 21:47
1. Открывается редактор VB
2. Функция пишется точно так же как она пишется в ЛЮБОМ другом месте (если конечно приходилось хоть раз этим заниматься).
3. Вызов функции осуществляется так же, как и встроенной, начиная в ячейке со знака равенства.
-----
Только что переставил офис на 2007, совсем другой интерфейс, поэтому пока "совсем подробно" (типа как открыть редактор VB) пока не скажу - хотя для этого есть помощь.
Во всяком случае лет 5 назад.. или даже поболее, функции свои таким образом делал, сейчас нужда отпала, давно не практиковался :)

Ответить

Номер ответа: 4
Автор ответа:
 Сергей



Вопросов: 2
Ответов: 8
 Профиль | | #4 Добавлено: 25.06.07 00:15
Ну это уже получается как макрос! Хотя тоже вариант!
Возникла новая проблема, как в отсортированном столбце оставит только уникальные значения?

Ответить

Номер ответа: 5
Автор ответа:
 Marki



Вопросов: 42
Ответов: 94
 Профиль | | #5 Добавлено: 25.06.07 01:17
после сортировки проверяешь с первого и далее до последнего...
если элемент i равен элементу i+1, то делаешь ему "сектыр башка"

Ответить

Номер ответа: 6
Автор ответа:
 EUGY



Вопросов: 0
Ответов: 454
 Профиль | | #6 Добавлено: 25.06.07 02:15
Сергей, прямо удивлен, а что команда меню : Данные/Сортировка уже не доступна?
Или пропала функция РАНГ?

Ответить

Номер ответа: 7
Автор ответа:
 Сергей



Вопросов: 2
Ответов: 8
 Профиль | | #7 Добавлено: 25.06.07 08:59
2 EUGY: Задача поставлена таким образом, чтобы воплатить сортировку на формулах. Функция РАНГ не решает этой задачи!

Ответить

Номер ответа: 8
Автор ответа:
 Сергей



Вопросов: 2
Ответов: 8
 Профиль | | #8 Добавлено: 25.06.07 09:01
Marki, при таком решении появятся пустоты в столбце, что также не допустимо!

Ответить

Номер ответа: 9
Автор ответа:
 Marki



Вопросов: 42
Ответов: 94
 Профиль | | #9 Добавлено: 25.06.07 17:15
"Пустоты" в столбце могут появиться исключительно в конце списка, т.е. список просто станет короче. Но это является твоим собственным условием - ОСТАВИТЬ УНИКАЛЬНЫЕ ЗНАЧЕНИЯ (т.е. как я понимаю - убрать повторения).
В середине списка при использовании указанного выше алгоритма пустоты не появятся: т.к. я говорю не об ОЧИСТКЕ элемента списка (как видимо понял ты, когда остается элемент с "пустым" значением), а о его УДАЛЕНИИ.
Если не удается удалить элемен сразу, то после сортировки и "очистки" повторяющихся элементов создай новый массив, равный по размеру количеству НЕпустых элементов в предшествующем массиве, и скопируй в новый массив НЕпустые значения.

Ответить

Номер ответа: 10
Автор ответа:
 Сергей



Вопросов: 2
Ответов: 8
 Профиль | | #10 Добавлено: 25.06.07 18:54
Marki: Получилось! Ещё раз спасибо!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам