Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Цикл в формуле - проверка условий и подстановка значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Цикл в формуле - проверка условий и подстановка значений
Balbasochka Дата: Понедельник, 21.08.2017, 12:32 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Помогите, пожалуйста, с формулой.
Есть таблица с определенной структурой.
Нужно определить для каждой позиции подгруппу, в которую она входит. Код уровня для наименования подгруппы всегда один и тот же, код уровня для номенклатуры тоже всегда один и тот-же. Количество строк в каждой подгруппе неопределенное, количество подгрупп тоже может отличаться.

Имеем:
Код уровня группы | Наименование | Подгруппа
2 | Подгруппа A |
1 | товар1 |
1 | товар2 |
1 | ……….. |
2 | Подгруппа B |
1 | товар1 |
1 | товар5 |
1 | …….. |
2 | Подгруппа С |
1 | товар1 |
1 | товар2 |
1 | ……… |
Надо получить:
Код уровня группы | Наименование | Подгруппа
2 | Подгруппа A |
1 | товар1 | A
1 | товар2 | A
1 | ……….. | A
2 | Подгруппа B |
1 | товар1 | B
1 | товар5 | B
1 | …….. | B
2 | Подгруппа С |
1 | товар1 | С
1 | товар2 | С
1 | ……… | С

Я попробовала через
Код
=ЕСЛИ(И(A37=1;СМЕЩ(A37;-1;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-1;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-2;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-2;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-3;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-3;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-4;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-4;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-5;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-5;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-6;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-6;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-7;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-7;1;1);1);"")))))))


Но строк может быть очень много... можно задать какой-то цикл? Если ЛОЖЬ, то минус 1 строка к предыдущему и т.д.
VBA совсем не знаю. Помогите, пожалуйста!
К сообщению приложен файл: 6603641.xls (29.0 Kb)


Сообщение отредактировал Balbasochka - Понедельник, 21.08.2017, 12:37
 
Ответить
СообщениеДобрый день!
Помогите, пожалуйста, с формулой.
Есть таблица с определенной структурой.
Нужно определить для каждой позиции подгруппу, в которую она входит. Код уровня для наименования подгруппы всегда один и тот же, код уровня для номенклатуры тоже всегда один и тот-же. Количество строк в каждой подгруппе неопределенное, количество подгрупп тоже может отличаться.

Имеем:
Код уровня группы | Наименование | Подгруппа
2 | Подгруппа A |
1 | товар1 |
1 | товар2 |
1 | ……….. |
2 | Подгруппа B |
1 | товар1 |
1 | товар5 |
1 | …….. |
2 | Подгруппа С |
1 | товар1 |
1 | товар2 |
1 | ……… |
Надо получить:
Код уровня группы | Наименование | Подгруппа
2 | Подгруппа A |
1 | товар1 | A
1 | товар2 | A
1 | ……….. | A
2 | Подгруппа B |
1 | товар1 | B
1 | товар5 | B
1 | …….. | B
2 | Подгруппа С |
1 | товар1 | С
1 | товар2 | С
1 | ……… | С

Я попробовала через
Код
=ЕСЛИ(И(A37=1;СМЕЩ(A37;-1;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-1;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-2;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-2;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-3;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-3;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-4;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-4;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-5;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-5;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-6;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-6;1;1);1);ЕСЛИ(И(A37=1;СМЕЩ(A37;-7;0;;1)=2);ПРАВСИМВ(СМЕЩ(A37;-7;1;1);1);"")))))))


Но строк может быть очень много... можно задать какой-то цикл? Если ЛОЖЬ, то минус 1 строка к предыдущему и т.д.
VBA совсем не знаю. Помогите, пожалуйста!

Автор - Balbasochka
Дата добавления - 21.08.2017 в 12:32
_Boroda_ Дата: Понедельник, 21.08.2017, 12:38 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так пойдет?
Код
=ЕСЛИ(A20=2;ПСТР(B20;11;99);C19)


Или так (если с пропусками)
Код
=ЕСЛИ(A20=2;"";ЕСЛИ(A19=2;ПСТР(B19;11;99);D19))
К сообщению приложен файл: 6603641_1.xlsx (10.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак пойдет?
Код
=ЕСЛИ(A20=2;ПСТР(B20;11;99);C19)


Или так (если с пропусками)
Код
=ЕСЛИ(A20=2;"";ЕСЛИ(A19=2;ПСТР(B19;11;99);D19))

Автор - _Boroda_
Дата добавления - 21.08.2017 в 12:38
Balbasochka Дата: Понедельник, 21.08.2017, 12:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Не работает, возможно я описала в тексте не очень точно.
В ячейку C нужно проставить значение из столбца B и его надо найти снизу вверх.
Если была бы другая структура файла можно было бы ВПР использовать с незакрепленным диапазоном.
 
Ответить
СообщениеНе работает, возможно я описала в тексте не очень точно.
В ячейку C нужно проставить значение из столбца B и его надо найти снизу вверх.
Если была бы другая структура файла можно было бы ВПР использовать с незакрепленным диапазоном.

Автор - Balbasochka
Дата добавления - 21.08.2017 в 12:46
Balbasochka Дата: Понедельник, 21.08.2017, 12:52 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Ух-ты, ух-ты! А у Вас работает!
Сейчас попробую.
Боже...какая она красивая и простая! Как же мозг так заточен? Короткие запросы...красотища! А мой мозг куда-то пошел...в какие-то дебри...
 
Ответить
СообщениеУх-ты, ух-ты! А у Вас работает!
Сейчас попробую.
Боже...какая она красивая и простая! Как же мозг так заточен? Короткие запросы...красотища! А мой мозг куда-то пошел...в какие-то дебри...

Автор - Balbasochka
Дата добавления - 21.08.2017 в 12:52
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!