Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
to Z  
 
 Пожалуйста внимательно посмотрите в описание проблемы: ячейки не пусты, они содержат формулы. Эти формулы присваивают ячейке либо числовое значение, либо "" (в случае если в ячейках из которых берутся данные для вычисления ничего нет).  
 
Пример такой проблемной ячейки: A1=if(B1=0;"";B1+C1). Таким образом если B1 ничего не содержит, то значение A1 будет равно "". Это выглядит как пустая ячейка, но интерпретируется Диаграммой как нуль.  
 
 
 
 
to Igor67  
 
 Спасибо за помощь, с массивами пока не будем заморачиваться (теперь всё работает с приемлемой скоростью). Если будет нужно, почитаю книжку по VBA или попрошу отдельно.  
 
Файл со статистиками составляется один раз за год, потом с ним будут работать люди далёкие от Excel и программирования. Таким образом работа должна быть максимально комфортабельной и внешний вид данных как можно более дружелюбным. Поэтому стараемся.  
 
to vikttur  
 
 Понял, спасибо (иногда проще спросить, чем в хелпе тыкаться)  
 
 
 
 
to Юрий М  
 
 Сам часто занимаюсь "левой резьбой", но в данном случае (как видно из файла с примером) строчки имеют различный окрас, который пришлось бы присваивать либо вручную, либо специальным макросом. Поэтому работа не упростиласть бы. Хотя возможно и есть более простой способ задать в формуле необходимый цвет шрифта?
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
to Igor67  
 
Нда ваша идея с отключением обновления экрана и автоматического перерасчёта принесла некоторое ускорение с 72 секунд до ... 2 секунд.  
 
На этом уже огромное спасибо.  
 
Далее по списку:  
 
- строчка "lLastRow = .Row + .Rows.Count - 1" инициирует следующую очибку при компиляции: "Object doesn't support this property or method"  
 
- если не определять переменные в начале макроса, то какой тип присваивается по-умолчанию?  
 
- какое преимущество у оборота:  
  "With ActiveWorkbook.Worksheets("Daten") End With"  
  перед:  
  "Worksheets("Daten").Activate" ?  
 
- Вы что-то говорили про массивы? Если можно один короткий пример с пояснениями.  
 
- Ваш немецкий совсем неплох (за исключением пары косяков :) ). Прошу прощения за непереведённые коментарии.
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
{quote}{login=Юрий М}{date=25.12.2010 12:40}{thema=}{post}Сюда загляните: http://andypope.info/charts/brokenlines.htm{/post}{/quote}  
 
Уважаемый Юрий,  
 
Вы уже давали совет с интерполяцией, но он не подходит по условию, потому что:  
 
- он либо действует только если ячейка пуста и требуется определиться, что будет отображаться на графике: ничего, нуль или усреднённое значение  
 
- либо хотя при введении NA() точка на графике не равна нулю, но зато загрязняется лишней надписью ячейка в таблице (по определению она должна быть пуста, если отсутствуют вычисляемые данные)  
 
 Моя проблема заключается в том, что в вычисляемые ячейки встроены формулы, и если по условию вычислять нечего (учавствующие в вычислении ячейки первичных данных пусты), то независимо от выбираемого значения (не числового, например "" или подобного, чтобы ячейка представлялась пустой) диаграмма присваивает соответствующему пункту графика нуль и ничего поделать с этим не получается.  
 
 Я подробно описал это в одном из моих постов. Все обычные настройки я уже перепробовал. Оптимально было бы написать макрос для диаграмм, чтобы все нулевые значения просто удалялись. Но к сожалению мои знания VBA недостаточны для этого и я не располагаю достаточным количеством времени для его освоения.
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
Так как желающих/могущих помочь советом не наблюдается, пришлось воспользоваться единственной доступной альтернативой и написать некрасивый макрос типа:  
 
Sub Tabellenaktualisierung()  
'  
' Tabellenaktualisierung Macro  
'  
' Keyboard Shortcut: Ctrl+t  
'  
Worksheets("Daten").Activate  
                               ' Aktivierung der Seite "Daten" um auf die Zellen zugreifen zu koennen  
     
For i = 5 To 1096               ' Datenzeilenindex  
 
                               ' pruefen, ob folgende Werte ausgerechnet werden muessen  
 
   If (Cells(i, 40).Value <> "") And (Cells(i, 40).Value <> 0) Then    ' Taktzahl "P"  
                                                                       ' Formel: J / AN  
       Cells(i, 16).Value = Cells(i, 10).Value / Cells(i, 40).Value  
   Else                        ' Wenn nicht, dann wird die Zelle geloescht  
       Cells(i, 16).ClearContents  
   End If  
...  
...  
...  
Next  
End Sub  
 
Макрос запускается по нажатию комбинации клавишь и требует для выполнения около минуты.  
За сим проблему считаю принципиально решённой. Если есть предложения по оптимизации кода, буду рад их услышать.    
Спасибо всем нашедшим время почитать и ответить на пост.  
С уважением,  
Дмитрий
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
Сложного в графике ничего нет: данные для графика берутся из столбца "P".    
 
Также в области данных графика указан диапазон за весь текущий год, поэтому ничего странного в "пустоте" графика нет, данные будут запольняться постепенно.  
 
Неустраивает, что график интерпретирует выданные формулой пустые значения ("") как нули и тем самым придумывает несуществующие значения (что ведёт к неправильному отображению как самого графика, так и тренда).  
 
После разбора истории с интерполяцией и сопуствующими опциями получается следующее: это решение не подходит в принципе, так как преобразует пустые ячейки в нули/промежуточные значения, а не наоборот (так как работаю с английской версией офиса, то не сразу понял в чём заключается суть рекомендаций интерполировать данные).  
 
Подстановка "нд()" так же не подходит, потому как таблица (предназначенная для постоения отчёта) приобретает неряшливый вид а так же перестают вычисляться суммы и средние значения по столбцу.  
 
Построение дополнительных таблиц труднореализуемо, так как файл и без того перегружен данными (и лишние таблицы приведут к неразберихе), которые так же имеют жёсткую привязку к оси абсцисс на графике (набор данных из трёх значений привязывается к конкретной дате и если начинать убирать фильтром пустые значения, то на графике будет куча-мала).  
 
Единственная альтернатива VBA, по моему мнению, состоит в том, чтобы вручную подставлять формулу для расчёта только в те ячейки, где не должно быть пустых значений. Так как заранее неизвестно, где будут такие значения, а где нет, то формулы придётся подставлять в реальном времени, а это неприемлимо (конечный пользователь должен просто вводить начальные данные и распечатывать отчёты).  
 
Таким образом пытаюсь в данный момент найти способ прочитать из таблицы строчку ...SeriesCollection(x).Values, которая содержит искомые данные. Так как не имею опыта работы с бейсиком, то испытываю известные трудности.  
 
Если будут предложения, то пожалуйста...
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
Получается, что интерполяция как и нд() мне не подходят, так как меня вполне устраивают разрывы в графике, но не устраивают нулевые значения вместо разрывов и надписи типа "нд()" в ячейках таблицы (в этом случае так же некорректно происходит вычисление среднего значения диапазона)
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
Абсолютное большинство ссылок из поиска (начиния страницы этак со второй) ведут на одну из главных страниц форума, а не к запрашиваемым темам (возможно они удалены или перемещены и не переиндексированны). Тем не менее принимаю упрёк и буду искать, но первые исследования показывают, что речь идёт о несколько других материях (встраивание дополнительных графиков, создание таблиц для дополнительных вычислений и т.п.).  
 
Далее по списку: совершенно не понял, почему я получил по шапке за размещение файла. Цель этого была наглядно показать, в чём заключается проблема. Что так же находится в согласии с одним из ваших собственных постов к другому участнику форума "Для этого Вам нужно немного напрячься и создать простой пример с требуемым..."  
 
 
Ещё раз коротко описание проблемы:    
 
- Данные для графика берутся из таблицы.    
- Табличные значения вычисляются по формуле.  
- Формула решает, присвоить ячейке числовое или пустое значение  
- Пустые ячейки (значение "") обображаются на графике как нулевые, а не должны отображаться вообще.  
 
 Речь идёт о таблице со многими сотнями записей и десятками параметров (и соответственно десятками графиков). Возможности размещать двойные таблицы с убранными пустыми ячейками нет. Всё что нужно, это красивое отображение графиков (и как следствие правильно вычисленные тренды и т.п.).  
 
 Как уже сказал, буду пытаться найти решение при помощи интерполяции, но если есть возможность, прошу пояснить спорные моменты для возможной экономии времени и сил.  
 
С уважением,  
 
Дмитрий
Вопросы знатокам особенностей графиков и диаграмм в Экселе-2010
 
{quote}{login=vikttur}{date=21.12.2010 12:17}{thema=}{post}Меню Сервис-Параметры-Диаграмма-Интерполяция_значений{/post}{/quote}  
 
Так получилось, что оставляю посты в двух темах параллельно. Товарищ Юрий М уже писал: "А интерполировать значения - не вариант? Сервис - Параметры - Диаграммы."  
 
Только вот где в Office 2010 находятся указанные вами опции? Похоже, что ларчик открывается очень просто, только вот никак не могу сообразить, как именно. Прошу подробнее объяснить, что представляет собой интерполяция и с чем её едят.  
 
С уважением,  
 
Дмитрий
Проблема с отображение Диаграмм (нулевые значения для пустых вычисляемых по формулам ячеек)
 
Доброго времени суток!  
 
Имеется следующая задача:  
 
Нужно отобразить в диаграмме (обычном графике) диапазон числовых значений привязанных к датам (ось "х").    
 
Числовые значения вычисляются по формулам типа 'if(a1="";"";a1/b1)'. Смысл заключается в том, чтобы не пачкать таблицу выражениями типа 'div/0!', если используемые в вычислениях ячейки пусты.  
 
Всё бы ничего, но в случае, когда выполняется условие 'a1=""' и ячейке присваивается значение '""' диаграмма считает, что значение ячейки равно нулю. В итоге график содержит фальшивые данные (нули) и соответственно неправильно вычисляет тренд.  
 
Все попытки изменить ситуацию через прямые настройки диаграммы ни к чему не привели.  
 
Решил сделать это через макросы, но столкнулся с проблемой, что не могу присвоить значение конкретной ячейки данных в диаграмме. Обращение возможно только ко всему графику:  
'Sheets("Page1").ChartObjects("Diagramm1").Chart.SeriesCollection(1).Values'  
 
 
Если подскажете, как обойти эту загвоздку или возможно решить проблему другим способом, буду очень признателен.  
 
С уважением,  
 
Дмитрий
Страницы: 1
Наверх