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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 00:37   #1
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию вырезание значений #Н/Д

задача проста: есть некий массив в котором есть последовательные цифры и ячейки со значением #Н/Д. Надо вырезать значения #Н/Д так чтоб цифры стали последовательны как бы "склеились". вот пример
#Н/Д 4
#Н/Д 3
#Н/Д 7
4 34
3 56
7 32
34 45
56 67
#Н/Д 11
#Н/Д а получить надо такое - 3
#Н/Д 45
32 67
45
67
11
3
#Н/Д
#Н/Д
#Н/Д
45
67

если поможет то перед там как начнутся цифры в соседнем столбце состояшим только из нулей будет единица, и ещё количество цифр всегда одинаковое а количество #Н/Д может быть разным... для лучшего понятия прикрепляю реальный файл (на первом листе то что есть на втором то что надо получить).

Заранее всем участником спасибо за участие.
Вложения
Тип файла: rar пример1.rar (23.5 Кб, 24 просмотров)
drNabla вне форума Ответить с цитированием
Старый 27.10.2010, 00:57   #2
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Включить фильтр,где выбрать строки с #Н/Д и удалить эти строки.
ZORRO2005 вне форума Ответить с цитированием
Старый 27.10.2010, 01:08   #3
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

решение элегантное, я такой функции раньше не знал. Но мне потом на следушем листе надо будет просуммировать эти значения, и там всёравно вылазят эти #Н/Д, и мешаются, потому что изменился вид, но нумерация ячеек осталась прежней, это не приемлемо для дальнейших расчётов.
drNabla вне форума Ответить с цитированием
Старый 27.10.2010, 01:48   #4
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

A1:
Код:
=ИНДЕКС(Лист1!A$1:A$1000;НАИМЕНЬШИЙ(ЕСЛИ(ЕНД(Лист1!$B$1:$B$1000);"";СТРОКА(A$1:A$1000));СТРОКА());)
Формула массива
ZORRO2005 вне форума Ответить с цитированием
Старый 27.10.2010, 01:58   #5
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

идею понял, но щас нет сил уже разбираться... завтра опробую на деле, отпишусь о результатах.
спасибо.
drNabla вне форума Ответить с цитированием
Старый 27.10.2010, 03:01   #6
EugeneS
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 472
По умолчанию

или так с помощью макроса, Сервис - Макрос - Макросы - EliminateNA - Выполнить
Вложения
Тип файла: zip пример1_.zip (61.1 Кб, 11 просмотров)
EugeneS вне форума Ответить с цитированием
Старый 27.10.2010, 08:38   #7
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Для облегчения пересчетов использован дополнительный столбец.
Если в примере все-таки не "реальный файл" и значения и Н/Д получаются при работе формул в этих ячейках, можно еще облегчить жизнь, но нужно видеть, откуда и как подтягиваются данные. И НЕданные
Вложения
Тип файла: rar пример1.rar (9.4 Кб, 17 просмотров)
vikttur вне форума Ответить с цитированием
Старый 27.10.2010, 13:07   #8
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

значения Н/Д и правда получаются из формул, поэтому макрос отказывается работать... во всяком случае я его не смог заставить... просто с цифрами и значениями получается, как только вставляю своё выдаёт ######....
в формулах ещё не успел разобраться, но прикладываю настоящий файл, там на первом листе просто исследуемые значения, на втором то что надо как раз поменять и вывести на третий лист полученный результат.
Вложения
Тип файла: rar пример3.rar (906.8 Кб, 19 просмотров)
drNabla вне форума Ответить с цитированием
Старый 27.10.2010, 13:36   #9
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Доктор, ну зачем такой объемный (в несжатом более 8 Мб) файл для примера! Достаточно было несколько строк.
Код:
=ЕСЛИ(СУММ($A$1:$A1)>0,5;Лист1!A1;#Н/Д)
Достаточно заменить #Н/Д на "":
Код:
=ЕСЛИ(СУММ($A$1:$A1)>0,5;Лист1!A1;"")
vikttur вне форума Ответить с цитированием
Старый 27.10.2010, 14:06   #10
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

это ещё очень мало, обычно там в несколько раз больше значений, просилиж реальный файл... вот немног урезал. выслал....
если сделать то как вы предложили то будут просто нустые не занятые ячейки, а нужна последовательность оставшихся цифр. без пропусков, или я как то не правильно понял?
drNabla вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вырезание фрагмента изображения DeDoK Общие вопросы Delphi 5 12.09.2010 01:00
Сохранение и загрузка в файл текстовых значений и значений типа Boolean krikaved Общие вопросы Delphi 1 16.03.2010 07:53
Вырезание слов KoBRaAndrey Общие вопросы Delphi 5 24.12.2009 20:49
2 вопроса по c++ 1)небольшая функция 2)вырезание лишних цифр Destructor Общие вопросы C/C++ 2 23.12.2009 13:18