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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2014, 20:29   #1
Tigranik
Пользователь
 
Регистрация: 29.01.2013
Сообщений: 17
Радость Несколько значений в одной ячейке!

Добрый день уважаемые гуру excel. Столкнулся с такой проблемкой. Делаю табличку, в которой указывается количество отгружаемого товара и дата отгрузки в примечании. В такой форме (см. рисунок ниже)



Все бы было замечательно, но позиций в этой таблице может быть больше 400000! И тогда примечания начинают жутко тормозить таблицу при попытке фильтрации или сортировки.
Думал писать сначала количество отгрузки, а потом через какой-нибудь разделитель писать дату отгрузки. (Пример: 100; 10.12.2013) но в таком случаи формулы не считают отгрузки в ячейке. Можно написать макрос, но он будет не удобен т.к. очень часто приходиться складывать эти числа.
Тогда решил я указывать даты отгрузок в «проверке вводимых значений» в виде всплывающих подсказок, но они при сортировке сбиваются.
Думаю зашифровать дату в цвете заливки ячейки Ну это то же не самый простой вариант решения задачи…
У кого-нибудь есть решения получше? Спасибо! =)
Вложения
Тип файла: zip Пример.zip (135.4 Кб, 16 просмотров)
Tigranik вне форума Ответить с цитированием
Старый 22.11.2014, 20:56   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

есть вариант проще - ведите учет отгрузок в нормальном формате
№ : Наименование товара: Дата : Кол-во : Поставщик : Получатель

на соседнем листе элементарно получить отчет (или на этом в 1-2х строках сверху с помощью фильтров и функций Промежуточные.Итоги)
по товару, по датам, по поставщику, получателю и по любым их комбинациям.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.11.2014, 21:33   #3
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

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

Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Application.DisplayNoteIndicator = False
   
    If Len(Target(1, 1).NoteText) > 0 Then
       Target(1, 1).Comment.Shape.Visible = True
    End If
End Sub

'Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'    Application.DisplayCommentIndicator = xlNoIndicator
'
'    Dim iComment As Comment
'    Set iComment = Target(1, 1).Comment
'
'    If Not iComment Is Nothing Then iComment.Shape.Visible = True
'End Sub
pashulka вне форума Ответить с цитированием
Старый 22.11.2014, 22:02   #4
Tigranik
Пользователь
 
Регистрация: 29.01.2013
Сообщений: 17
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
есть вариант проще - ведите учет отгрузок в нормальном формате
№ : Наименование товара: Дата : Кол-во : Поставщик : Получатель
.
К сожалению, таблица уже несколько лет видеться в таком формате. Естественно там в десятки раз больше столбцов (чем я указал в примере) и отгрузок по одной позиции может быть до 30 шт… поэтому и была принята такая форма. Просто сейчас таблица разрослась, и вот думаю как ее оптимизировать.

Цитата:
Сообщение от pashulka Посмотреть сообщение
Если структуру листа менять нельзя, то можно попробовать скрыть все примечания и отображать нужное, но только после выделения ячейки.
Эх к сожалению ваш код не увеличил быстродействие при фильтрации и сортировки таблицы...
Tigranik вне форума Ответить с цитированием
Старый 22.11.2014, 22:51   #5
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Неужели нельзя добавить хотя бы один столбец с датами отгрузок ?

и хранить все даты (по 1-й отгрузке) в одной ячейке. правда это тоже извращение и придётся заполнять/извлекать данные из этого столбца, видимо, также программно. но зато Вы сможете избавиться от примечаний.
pashulka вне форума Ответить с цитированием
Старый 24.11.2014, 08:43   #6
Tigranik
Пользователь
 
Регистрация: 29.01.2013
Сообщений: 17
Хорошо

Цитата:
Сообщение от pashulka Посмотреть сообщение
Неужели нельзя добавить хотя бы один столбец с датами отгрузок ?
Спасибо! Решили в итоге не париться, и минимизировать кол-во программного кода. В итоге пришол к выводу сделать к каждой отгрузке столбец с датой, т.е. Отгрузка №1: Дата отгрузки №1: Отгрузка №2: Дата отгрузки №2: … вопрос с суммированием отгрузок решается с помощью формулы =СУММЕСЛИ(шапка;"<>дата";диапазон). Как то так, всем спасибо за внимание!
Tigranik вне форума Ответить с цитированием
Старый 24.11.2014, 09:08   #7
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

На всякий случай, вдруг кому-то пригодится :

Реально ускорить сортировку ячеек, содержащих примечания, можно, XL97-2003 если в меню Сервис выбрать команду Параметры, затем, в появившемся диалоговом окне выбрать закладку Вид и установить переключатель супротив Вид - Объекты не отображать.

Как добраться до этой возможности в следующих версиях XL, уверен, подскажет справка.
pashulka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько параметров в одной ячейке crismas Microsoft Office Excel 6 18.02.2013 20:02
перечисление значений в одной ячейке, которые удовлетворяют условию syman207 Microsoft Office Excel 12 21.05.2012 20:47
DataGridView несколько строк в одной ячейке rmavlasv C# (си шарп) 1 06.12.2011 08:10
Как присвоить одной ячейке несколько значений? Хорошая Девочка Microsoft Office Excel 2 10.10.2010 20:58
Просуммировать несколько чисел в одной ячейке RUBEY Microsoft Office Excel 2 13.08.2009 20:33