Excel - Создать диаграмму из диапазона ячеек, исключая нулевые значения? - PullRequest
3 голосов
/ 06 июля 2011

У меня есть этот лист Excel, который в основном содержит много данных.Теперь этот лист Excel обновляется динамически с помощью макроса, который импортирует данные.Таким образом, данные могут измениться, то есть некоторые ячейки могут быть заполнены, а другие нет.

Итак, у меня есть эта формула на листе 2 в каждой ячейке от A2: A60 до M2: M60, которая в основном выглядитнапример:

=IF(Sheet1!E2<>0;Sheet1!A2;"")

Значение, если ячейка E2 в строке, в которой я нахожусь, равна 0, то скопированное значение в новой электронной таблице - ничто.То же самое относится к следующей строке:

=IF(Sheet1!E3<>0;Sheet1!A3;"")

Это повторяется до строки 60.

Теперь я хочу выбрать диапазон A2: A60 и вставить эти данные вдиаграмма.Но дело в том, что диаграмма добавляет ячейки, которые не имеют значения.Я хочу исключить его из графика без необходимости изменять диапазон графика.Возможно ли это с помощью формулы в выборе Chart?Или я должен был бы использовать макрос?

Редактировать: Прямо сейчас, диаграмма выглядит так, когда я создаю ее на основе A2: A60.Обратите внимание, что только A4: A17 действительно имеют какое-либо значение, остальные не имеют ничего из-за формулы, описанной выше.

Graph with unwanted (null) values.

1 Ответ

3 голосов
/ 06 июля 2011

Возможно, вы можете использовать именованный диапазон.

Вы можете определить имена как:

Name    Definition
Date    =OFFSET(Sheet1!$A$1,1,0,COUNTA($A:$A)-1)
Value   =OFFSET(Sheet1!$B$1,1,0,COUNTA($B:$B)-1)

А затем используйте их в качестве источника на диаграмме.

Более подробную информацию можно найти на веб-сайте MS .

[EDIT] Вот еще два примера:

[РЕДАКТИРОВАТЬ 2] Результаты работы в чате:

Проблема: формула COUNTA не работала на рабочем листе, потому что ячейки содержали формулы, поэтому COUNTA все еще считал эти ячейки, даже если значение было пустым.

Решение: мы использовали формулу SUMPRODUCT для подсчета пустых значений

Name   Definition
Date   =OFFSET(Sheet1!$A$2,1,0,SUMPRODUCT(IF(Sheet1!A2:A60<>"",1,0)),1))
Value  =OFFSET(Sheet1!$B$2,1,0,SUMPRODUCT(IF(Sheet1!B2:B60<>"",1,0)),1))

С уважением,

Max

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...