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

Вход

Регистрация

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

 

= Мир MS Excel/Какой макрос, функцию или условие использовать - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Какой макрос, функцию или условие использовать
NewDero Дата: Суббота, 17.09.2022, 14:17 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Всем привет!

Нужна подсказка в структурировании данных, а именно в разбитии двух строк на полноценную таблицу.

Исходные данные:
две строки и 4 тысячи столбцов (Рис.1)

Задача:
Нужно в зависимости от названия в первой строке, брать число которое находится строкой ниже от названия в том же столбце, и вставлять это число в нужную мне ячейку, а если в точности такого названия нет в выделенном мной диапазоне то за место числа ставить "нет" либо "-" (Рис.3)

Моих очень базовых знаний не хватает что бы быстро обработать такое количество данных. Подскажите какими макросами, функциями, условиями ячеек и возможностями экселя я могу решить данную задачу грубо говоря в пару кликов не перелапачивая всю таблицу в ручную.

В данных могут пропускаться, как вся горизонталь полностью, так и пара вертикальных точек на ней. Если такое происходит хотелось что бы ексель не найдя нужное название маркировал пропуски символом или словом. (Рис.2 показан пример двадцатой группы, третьей горизонтальной оси, тут пропущено очень ммного вертикальных точек)

Пояснения:
1) Рис.1 - Таблица данных
2) Рис.2 - как эти данные должны группироваться (сама эта таблица мне не нужна просто показан пример группировки горизонтальных осей и вертикальных точек)
3) Рис.3 - Итоговый результат
Название - оно состоит из трех цифр разделенных точками (15.1.7)
Первая цифра обозначает номер группы - 15.1.7 (Всего должно быть 36 групп)
Вторая цифра (для нас столбец) номер точки по горизонтальной оси в группе - 15.1.7 (всего горизонтальных осей в группе с учетом нуля 8, то есть от 0 до 7 включительно)
Третья цифра (для нас строка) обозначает номер точки по вертикальной оси - 15.1.7 (всего вертикальных точек может быть с учетом нуля 25, то есть от 0 до 24 включительно).
К сообщению приложен файл: 9911775.xlsx (69.3 Kb) · 9393554.jpg (26.2 Kb) · 9343302.jpg (120.5 Kb) · 2494544.jpg (91.7 Kb)
 
Ответить
СообщениеВсем привет!

Нужна подсказка в структурировании данных, а именно в разбитии двух строк на полноценную таблицу.

Исходные данные:
две строки и 4 тысячи столбцов (Рис.1)

Задача:
Нужно в зависимости от названия в первой строке, брать число которое находится строкой ниже от названия в том же столбце, и вставлять это число в нужную мне ячейку, а если в точности такого названия нет в выделенном мной диапазоне то за место числа ставить "нет" либо "-" (Рис.3)

Моих очень базовых знаний не хватает что бы быстро обработать такое количество данных. Подскажите какими макросами, функциями, условиями ячеек и возможностями экселя я могу решить данную задачу грубо говоря в пару кликов не перелапачивая всю таблицу в ручную.

В данных могут пропускаться, как вся горизонталь полностью, так и пара вертикальных точек на ней. Если такое происходит хотелось что бы ексель не найдя нужное название маркировал пропуски символом или словом. (Рис.2 показан пример двадцатой группы, третьей горизонтальной оси, тут пропущено очень ммного вертикальных точек)

Пояснения:
1) Рис.1 - Таблица данных
2) Рис.2 - как эти данные должны группироваться (сама эта таблица мне не нужна просто показан пример группировки горизонтальных осей и вертикальных точек)
3) Рис.3 - Итоговый результат
Название - оно состоит из трех цифр разделенных точками (15.1.7)
Первая цифра обозначает номер группы - 15.1.7 (Всего должно быть 36 групп)
Вторая цифра (для нас столбец) номер точки по горизонтальной оси в группе - 15.1.7 (всего горизонтальных осей в группе с учетом нуля 8, то есть от 0 до 7 включительно)
Третья цифра (для нас строка) обозначает номер точки по вертикальной оси - 15.1.7 (всего вертикальных точек может быть с учетом нуля 25, то есть от 0 до 24 включительно).

Автор - NewDero
Дата добавления - 17.09.2022 в 14:17
Gustav Дата: Воскресенье, 18.09.2022, 01:48 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Как я понял, нужно "нерегулярную" по кодам строку 1 листа "Данные" натянуть на регулярную (т.е. без пропусков) последовательность кодов, которую нужно предварительно сгенерировать.

Осуществил в прилагаемом файле на листе "Лист1". В колонках A:C генерируются элементы кодировки (формулы для ячеек A1:C1 соответственно):
Код
=ЦЕЛОЕ((СТРОКА()-1)/(8*25))+1

Код
=ЦЕЛОЕ((ОСТАТ(СТРОКА()-1;8*25))/25)

Код
=ОСТАТ(СТРОКА()-1;25)

В колонке D формируем кодовую строку из трёх элементов с разделителем "точка":
Код
=A1&"."&B1&"."&C1

Далее в колонке E ищем позицию сформированного кода в первой строке на листе "Данные"
Код
=ПОИСКПОЗ(D1;Данные!$A$1:$FXJ$1;0)

Наконец, в колонке F получаем значение из второй строки листа "Данные", с заменой отсутствующих значений словом "нет":
Код
=ЕСЛИ(ЕНД(E1);"нет";ИНДЕКС(Данные!$A$2:$FXJ$2;E1))


На этом остановился, так как бОльшего, вроде, ничего не запрашивалось. Хотя на листе "Пример" увидел некую перекрестную таблицу - с заголовками строк "0-24" и заголовками колонок, состоящих из элементов, оканчивающихся на 0 ("1.0.0","20.3.0"). Если она тоже нужна в таком разрезе, то можно еще лоб поморщить.
К сообщению приложен файл: 0760409.xlsx (387.9 Kb)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеКак я понял, нужно "нерегулярную" по кодам строку 1 листа "Данные" натянуть на регулярную (т.е. без пропусков) последовательность кодов, которую нужно предварительно сгенерировать.

Осуществил в прилагаемом файле на листе "Лист1". В колонках A:C генерируются элементы кодировки (формулы для ячеек A1:C1 соответственно):
Код
=ЦЕЛОЕ((СТРОКА()-1)/(8*25))+1

Код
=ЦЕЛОЕ((ОСТАТ(СТРОКА()-1;8*25))/25)

Код
=ОСТАТ(СТРОКА()-1;25)

В колонке D формируем кодовую строку из трёх элементов с разделителем "точка":
Код
=A1&"."&B1&"."&C1

Далее в колонке E ищем позицию сформированного кода в первой строке на листе "Данные"
Код
=ПОИСКПОЗ(D1;Данные!$A$1:$FXJ$1;0)

Наконец, в колонке F получаем значение из второй строки листа "Данные", с заменой отсутствующих значений словом "нет":
Код
=ЕСЛИ(ЕНД(E1);"нет";ИНДЕКС(Данные!$A$2:$FXJ$2;E1))


На этом остановился, так как бОльшего, вроде, ничего не запрашивалось. Хотя на листе "Пример" увидел некую перекрестную таблицу - с заголовками строк "0-24" и заголовками колонок, состоящих из элементов, оканчивающихся на 0 ("1.0.0","20.3.0"). Если она тоже нужна в таком разрезе, то можно еще лоб поморщить.

Автор - Gustav
Дата добавления - 18.09.2022 в 01:48
  • Страница 1 из 1
  • 1
Поиск:

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