Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Borisss от 08.09.2015, 16:58

Название: Перенос части данных из одной ячейки в другую ячеку
Отправлено: Borisss от 08.09.2015, 16:58
Добрый день! прошу содействия в решения и следующей задачи: в экселе есть столбец с данными
HUGGIES Салфетки влажные детские 72шт Classic
HUGGIES Салфетки влажные детские 72шт Classic
HUGGIES Салфетки влажные детские Classic Дуо 72шт
HUGGIES Салфетки влажные детские Classic Дуо 72шт
HUGGIES Салфетки влажные детские Ультра Комфорт Алоэ 64шт
HUGGIES Салфетки влажные детские Ультра Комфорт Алоэ Дуо 64шт
HUGGIES Салфетки влажные детские Ультра Комфорт без отдушки 64шт
HUGGIES Салфетки влажные детские Экстра Джентл 64шт
как можно перенести количество в другую ячейку?   HUGGIES Салфетки влажные детские Classic           72шт

Название: Re: Перенос части данных из одной ячейки в другую ячеку
Отправлено: cheshiki1 от 08.09.2015, 17:28
если штук не бывает больше 9999 то вариант
=ПРАВСИМВ(ПСТР(A1;ПОИСК("шт";A1)-4;6);6-ПОИСК(" ";ПСТР(A1;ПОИСК("шт";A1)-4;6)))
или макрос
Sub ch()
Dim i#, s, r
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
  s = Split(Cells(i, 1))
     For Each r In s
     If r Like "*шт" Then Cells(i, 3) = r: Exit For
     Next
Cells(i, 1) = Replace(Cells(i, 1), Cells(i, 2), "")
Next
End Sub
Название: Re: Перенос части данных из одной ячейки в другую ячеку
Отправлено: vikttur от 08.09.2015, 17:42
Можно и больше, и числом:
=--ПСТР(ПСТР(A1;ПОИСК("шт ";A1&" ")-6;6);ПОИСК(" ";ПСТР(A1;ПОИСК("шт ";A1&" ")-6;10))+1;9)
Лучше искать "шт " (с пробелом) - вариант наличия "шт" в середине слова не исключен (но если будет в конце слова, то "ой" :) ).
A1&" " - для обхода ошибки в случае, когда "шт" расположено в конце текста.
Название: Re: Перенос части данных из одной ячейки в другую ячеку
Отправлено: Borisss от 08.09.2015, 17:56
Цитата: cheshiki1 от 08.09.2015, 17:28
если штук не бывает больше 9999 то вариант
=ПРАВСИМВ(ПСТР(A1;ПОИСК("шт";A1)-4;6);6-ПОИСК(" ";ПСТР(A1;ПОИСК("шт";A1)-4;6)))
или макрос......
Спасибо!
больше 9999 не бывает
есть ли ещё вариант формулы, который удаляет из редактируемой ячейки переносимое значение?
Допустим было:
HUGGIES Салфетки влажные детские 72шт Classic
а получалось в итоге:
HUGGIES Салфетки влажные детские Classic                   72шт
Название: Re: Перенос части данных из одной ячейки в другую ячеку
Отправлено: cheshiki1 от 08.09.2015, 18:01
из проверяемой ячейки удалить найденное можно только макросом (добавил в коде выше), а вот формулу в соседней ячейке можно написать.
смотрите ф-цию ПОДСТАВИТЬ
Название: Re: Перенос части данных из одной ячейки в другую ячеку
Отправлено: zs от 10.09.2015, 16:48
Пиши - (число"шт"( в конце текста
Используй формулу для отделения количества
(например, формула располагается в ячейке О1)
=ПСТР(A1;ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(54);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(55);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(56);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(57);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(58);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(53);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(52);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(51);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(50);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(49);A1);ЕСЛИОШИБКА(ПОИСК(СИМВОЛ(48);A1);4)))))))))));99999999)
Используй формулу для  отделения наименования
=ПОДСТАВИТЬ(A1;O1;"")
С уважением, ZS5)