Страницы: 1
RSS
Перевод ячейки с текстом в диапазон с числом
 
Добрый день!

Не могу найти информацию, а она наверняка есть.
У меня есть таблица с данными, из нее сводная со срезами.
Так вот в данных есть столбец, в котором содержится диапазон, введенный текстом. Для примера 70-120 (ячейка отформатирована как текст).
Мне для среза в сводной нужно из ячейки получить ряд числовых значений, из 70-120 должны получится числа 70, 95 и 120. из 70-150 -> 70, 95, 120 и 150
Сразу скажу, это стандартный ряд сечений кабеля.
В сводной будет простой подбор, например выбрав 120, должно выпасть и 70-120 и 70-150.
Как это сделать, подскажите плиз. Я думал расписать через столбцы, создать рядом новые, но долго, выполнимо конечно, но не грамотно. Да и не знаю, как свести несколько столбцов таблицы с одним срезом :(
 
>>>У меня есть таблица с данными
давайте её сюда (согласно Правил форума)
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Пожалуйста.
 
не увидел у вас в таблице и в исходных данных пересекающихся рядов. т.е. есть 70-120 и 150-240. Так и должно быть? если да, то тогда вопрос ваш теряет смысл, похоже.
Если же есть диапазоны 70-120 и 70-150, то тогда сложнее - как вообще понять, эти сечения могут быть
1. где-то должен быть список конкретных сечений (лучше - список соответствий "сечение - ряд сечений")
2. получается, что каждому сечению может соответствовать несколько рядов сечений, и на оборот.

Мне видится только один способ - по установке фильтра (среза) одной таблицы макросом устанавливать фильтр на большой сводной, проверяя, в интервалы каких рядов попадает выбранное сечение.
F1 творит чудеса
 
Действительно.
Я взял уже готовый файл, только по одному поставщику, со всеми поставщиками таблица не прикрепляется.

Вот как будет. Т.е. мне не нужен срез по столбцу I, а нужен консолидированный срез состоящий из оригинальных данных, находящихся в столбцах J Kи L
 
не знаю, если у вас всегда три поля отвечают за конкретные сечения - ну можно три среза... Но всё же думаю, что решение в том способе, что я предложил выше. По-другому не придумывается.
F1 творит чудеса
 
Три среза не правильно. Идея самой сводной в том, чтобы по сечению выбирать муфту.
Да и при дальнейшем наполнении таблицы, появятся другие муфты, которые имеют ряд сечений не из 3-х значение, а из 5-ти, 7-ми...
Не может быть у кабеля сразу 2 сечения (в случае с муфтами конечно).
Т.е. пользователь выбрав сечение кабеля 70мм2 должен увидеть все муфты и просто 70мм2 и 70-120 и 120-150 ...
А если предложить несколько срезов, то смысл теряется...
Вот я думаю, каким макросом прикрутить, хотя макросом не получится, скорее всего формулу нужно... Но какую? Пока не придумал. Есть самый просто вариант, но уж совсем не правильный.
Можно сделать дубликаты строк, т.е. товар А имеет свойство 70-120, брать тупо и дублировать 3 строки А со свойствами 70 95 и 120 соответственно, срез выберет тоьлко уникальные значения и все заработает, но это когда 20, ну 50 товаров, а когда сотни или десятки сотен ...
Цитата
Максим Зеленский написал:
Мне видится только один способ - по установке фильтра (среза) одной таблицы макросом устанавливать фильтр на большой сводной, проверяя, в интервалы каких рядов попадает выбранное сечение.
А как это организовать?
1. Сделать несколько срезов, скрыть их.
2. Сделать еще одну сводную только со списком сечений кабеля 4, 6, 10, 16.... 185, 240. Для организации обычного среза. Но он то будет ссылаться на другую сводную.

А вот как потом организовать так, чтобы в скрытых срезах проставлялся нужный фильтр пока не придумал.
Изменено: Muzschina - 19.03.2015 15:46:46
 
Тема неоднократно поднималась на форуме, можно поискать, например, вот так. Ну или по похожим запросам.
Если у нас две сводные таблицы есть, срезы делать не обязательно. Например, первая сводная имеет структуру как в первом файле (т.е. там только поле "ряд сечений", и нет отдельных полей "Сечение 1, 2 и т.д."). Это основная, которая будет фильтроваться.
Дальше делаем вторую таблицу соответствий - Сечение - Ряд сечений. Двух столбцов достаточно. Оба поля двигаем в столбцы. Делаем срез для поля "Сечения", и затем макросом читаем, что отфильтровалось в поле "Ряд сечений" - это будет наш фильтр для большой таблицы для поля "Ряд сечений". И затем уже макросом применяем получившийся фильтр к большой таблице.

Я, к сожалению, не особо силен в VBA по сводным, может, кто-то поможет опытный
F1 творит чудеса
Страницы: 1
Наверх