Здравствуйте. Никак не могу решить проблему. Есть столбец С в котором находятся как числовые так и текстовые данные, так же ячейки столбца могут принимать значение 0. Нужно перенести все текстовые и числовые значения за исключением ячеек со значением 0 в соседний столбец Е чтобы все значения находились в том же порядке что и в изначальном столбце но без ячеек со значением 0. Заранее спасибо)
пример как должно быть
Здравствуйте. Никак не могу решить проблему. Есть столбец С в котором находятся как числовые так и текстовые данные, так же ячейки столбца могут принимать значение 0. Нужно перенести все текстовые и числовые значения за исключением ячеек со значением 0 в соседний столбец Е чтобы все значения находились в том же порядке что и в изначальном столбце но без ячеек со значением 0. Заранее спасибо)
Я просто ставлю автофильтр, убираю ненужные данные, выделяю остатки и копирую. Но это только для разовых акций подходит, если такое нужно постоянно и автоматом, то самому интересно, как так сделать.
Я просто ставлю автофильтр, убираю ненужные данные, выделяю остатки и копирую. Но это только для разовых акций подходит, если такое нужно постоянно и автоматом, то самому интересно, как так сделать.Шкипер
Как вариант можно попробовать формулой "завалить" 0 в ошибку и далее воспользоваться инструментом выделения "специальных ячеек":
1. В ячейку E1 формулу: =ЕСЛИ(C1=0;НД();C1) 2. Скопировать (протянуть) ее ниже по столбцу E до ячейки, соответствующей последней занятой ячейке столбца C. 3. Скопировать столбец E и вставить специальной вставкой в себя самого как "значения". 4. Выделив столбец E, далее: Ctrl+G (или F5) / Выделить... / радиокнопка "константы" / из чекбоксов оставить только "ошибки" / OK / клавиша Delete.
P.S. Ааа, виноват, недопёр сразу - их же еще, оказывается, и сжать надо... Тогда вместо последней клавиши Delete секвенция такая: ПКМ (или Shift+F10) / Удалить... / радиокнопка "ячейки, со сдвигом вверх" / OK.
Как вариант можно попробовать формулой "завалить" 0 в ошибку и далее воспользоваться инструментом выделения "специальных ячеек":
1. В ячейку E1 формулу: =ЕСЛИ(C1=0;НД();C1) 2. Скопировать (протянуть) ее ниже по столбцу E до ячейки, соответствующей последней занятой ячейке столбца C. 3. Скопировать столбец E и вставить специальной вставкой в себя самого как "значения". 4. Выделив столбец E, далее: Ctrl+G (или F5) / Выделить... / радиокнопка "константы" / из чекбоксов оставить только "ошибки" / OK / клавиша Delete.
P.S. Ааа, виноват, недопёр сразу - их же еще, оказывается, и сжать надо... Тогда вместо последней клавиши Delete секвенция такая: ПКМ (или Shift+F10) / Удалить... / радиокнопка "ячейки, со сдвигом вверх" / OK.Gustav
По ходу возни со своим вариантом решения, вышел на другую занятную задачку - отобразить выделение "специальных ячеек" в столбце E на исходный диапазон в столбце C (т.е. как бы "переместить" получившееся "специальное" выделение)
В лоб задачка может быть решена исполнением одного оператора VBA в окне отладки: Alt+F11 / Ctrl+G / Selection.Offset(0,-2).Select / Enter / Alt+F11
Мне также приглянулся и менее явный вариант (зато совсем без "программирования"). Для этого выполняем лишь некоторые шаги из последовательности выше и останавливаемся перед удалением:
1. В ячейку E1 формулу: =ЕСЛИ(C1=0;НД();C1) 2. Скопировать (протянуть) ее ниже по столбцу E до ячейки, соответствующей последней занятой ячейке столбца C. 3. (этот шаг не делаем, оставляя формулы в ячейках) 4. Выделив столбец E, далее: Ctrl+G (или F5) / Выделить... / радиокнопка "ФОРМУЛЫ" / из чекбоксов оставить только "ошибки" / OK
и новый шаг 5. Не снимая выделение, опять Ctrl+G (или F5) и далее: Выделить... / радиокнопка "влияющие ячейки" / OK
Ограничение второго варианта: для абсолютной точности воспроизведения конфигурации выделения в исходном диапазоне формулы ячеек столбца E должны ссылаться только на одну соответствующую ячейку столбца C.
P.S. Ура! Ограничение отменяется! Выполнив абсолютно точно шаги 1-4, останавливаемся перед шагом 5 и меняем формулы в текущем выделении (в столбце E) на простые ссылки:
Шаг 4 с половиной. Не снимая выделение, вводим (в активную ячейку) столбца E символ "=" как признак начала формулы и указываем стрелками или мышкой соответствующую (в той же строке) ячейку в столбце C. Например, если активна ячейка E3, то должно получиться: =C3. Ввод формулы завершаем комбинацией Ctrl+Enter, чтобы аналогичные формулы создались во всех ячейках "специального" выделения.
Далее выполняем шаг 5 (без изменений).
Таким образом, шаг "4 с половиной" заменяет любые ранее введенные в столбец E какие-угодно сложные формулы, возможно содержащие ссылки на несколько ячеек столбца C, на элементарные формулы со ссылкой только на одну ячейку каждая.
По ходу возни со своим вариантом решения, вышел на другую занятную задачку - отобразить выделение "специальных ячеек" в столбце E на исходный диапазон в столбце C (т.е. как бы "переместить" получившееся "специальное" выделение)
В лоб задачка может быть решена исполнением одного оператора VBA в окне отладки: Alt+F11 / Ctrl+G / Selection.Offset(0,-2).Select / Enter / Alt+F11
Мне также приглянулся и менее явный вариант (зато совсем без "программирования"). Для этого выполняем лишь некоторые шаги из последовательности выше и останавливаемся перед удалением:
1. В ячейку E1 формулу: =ЕСЛИ(C1=0;НД();C1) 2. Скопировать (протянуть) ее ниже по столбцу E до ячейки, соответствующей последней занятой ячейке столбца C. 3. (этот шаг не делаем, оставляя формулы в ячейках) 4. Выделив столбец E, далее: Ctrl+G (или F5) / Выделить... / радиокнопка "ФОРМУЛЫ" / из чекбоксов оставить только "ошибки" / OK
и новый шаг 5. Не снимая выделение, опять Ctrl+G (или F5) и далее: Выделить... / радиокнопка "влияющие ячейки" / OK
Ограничение второго варианта: для абсолютной точности воспроизведения конфигурации выделения в исходном диапазоне формулы ячеек столбца E должны ссылаться только на одну соответствующую ячейку столбца C.
P.S. Ура! Ограничение отменяется! Выполнив абсолютно точно шаги 1-4, останавливаемся перед шагом 5 и меняем формулы в текущем выделении (в столбце E) на простые ссылки:
Шаг 4 с половиной. Не снимая выделение, вводим (в активную ячейку) столбца E символ "=" как признак начала формулы и указываем стрелками или мышкой соответствующую (в той же строке) ячейку в столбце C. Например, если активна ячейка E3, то должно получиться: =C3. Ввод формулы завершаем комбинацией Ctrl+Enter, чтобы аналогичные формулы создались во всех ячейках "специального" выделения.
Далее выполняем шаг 5 (без изменений).
Таким образом, шаг "4 с половиной" заменяет любые ранее введенные в столбец E какие-угодно сложные формулы, возможно содержащие ссылки на несколько ячеек столбца C, на элементарные формулы со ссылкой только на одну ячейку каждая.Gustav