Страницы: 1
RSS
Выписать в соответствующие ряды значения из таблицы исключая пустые ячейки
 
Привет!
Выручите, пожалуйста)
Есть наполовину заполненная таблица
Требуется выписать из нее значения друг за другом в свой ряд исключая пустоты
Спасибо)
 
1. Выделяете область A2:E10
2. Нажимаете F5 - Выделить - Пустые ячейки - ОК (выделятся только пустые ячейки в вашей таблице)
3. Подводите мышку на любую выделенную ячейку (она будет пустая и синяя) и нажимаете ПРАВОЙ клавишей мыши и в контекстном меню выбираете Удалить...
4. в появившейся форме выбираете самый первый пункт "ячейки, со сдвигом влево" - ОК
Изменено: New - 11.01.2021 19:15:25
 
Да, так работает) Но не совсем то, что я хотел)

Планируется оставить левую таблицу "Пример" и опираясь на нее получить выписанные строчки как в примере
 
добавлю к инструкциям оставленным New, один пункт:
1.1. нажмите копировать. отметьте ячейку I2, нажмите вставить (п.1.1. выполните между п.п. 1 и 2)
удачи!
Изменено: Ігор Гончаренко - 11.01.2021 20:56:16
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо, но опять не совсем то, что ищу)

Левая таблица из примера не постоянна (т.е. условно бесконечна), и постоянно обновляется (добавляются столбики с цифрами). Ниже или ж на другом листе выписываются в строчку цифры без пустых ячеек. И таблица в которую заносятся данные  должна сохраняться
Для понимания: раньше в школах учителя вели журнал и ставили оценки, естественно не каждый день и отмечали отсутствующих "н.", а потом выписывали текущие оценки отдельно на листок и раздавали ученикам.
Вот такого плана моя задача
Обновил пример:
Изменено: Сергей - 11.01.2021 20:42:00
 
п.1 Выделяете область A2:E10
читайте как: выделить диапазон с исходными данными
удачи!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Сергей написал:
раньше в школах учителя вели журнал
а еще раньше пороли розгами, может школам вернуться к первоистокам?
Изменено: Ігор Гончаренко - 11.01.2021 20:44:56
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Сергей, по  вашему второму примеру - а откуда взялась цифра 5 в ячейке E16, если  оценка 5 только одна у Ученика1 и она стоит уже в ячейке С16
Вы  добавили букву "н" в какие-то ячейки. Их можно удалить через замену на  "пусто" (Ctrl+H, найти: н, заменить на: пусто (ничего не указывать), а  далее по моей инструкции выше

P.S. Вопрос - а как бы вы хотели решать вашу задачу? Нажать на кнопочку и таблица преобразовалась в нужную, так ?
Изменено: New - 11.01.2021 20:51:31
 
Ігор Гончаренко, New, если я вас правильно понимаю, ваш алгоритм применим к уже существующей таблице и после того как я его применю, то исходная таблица исчезнет. А мне этого не надо)
 
НЕ ПРАВИЛЬНО!
см. п.1.1 в сообщении #4
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
вот вам макрос
 
Эммм...
Вот такой результат выходит по алгоритму
Исходная таблица изменяется, а мне же этого не надо. Мне нужно продолжать ее заполнять и чтобы в другом месте выписывались значения
 
Сергей, так в моём сообщении #8 я вам сказал, что сперва надо удалить/обнулить ячейки с "н" и сказал как это сделать. А чтобы не портить оригинальную таблицу, сделайте её копию перед преобразованием (скопируйте на соседний лист)

P.S. Там выше я вам макрос сделал. Нажимаете кнопочку и изменённая таблица появляется на новом листе
 
Цитата
New написал:
Нажать на кнопочку и таблица преобразовалась в нужную, так ?
Нет
Никаких кнопочек не планировал

Нужна помощь в написании примерно такого условия:
- если у ученика 1 есть отметка в таблице в первой ячейке), то она копируется и переносится в строчку А в первую ячейку
- если у ученика 1 нет отметки или что-то другое (не цифра) в таблице во второй ячейке, то во вторую ячейку строчки А ничего не заносится
- если у ученика 1 есть отметка в таблице в третьей ячейки, то она копируется и переносится во вторую ячейку строчки А
- и тд... и все это типа в режиме реального времени, никак не правя исходную таблицу
 
Сергей, что-то не понтяное - может таак
Код
=ЕСЛИОШИБКА(ИНДЕКС($B2:$F2;1;АГРЕГАТ(15;6;СТОЛБЕЦ($A$2:$F$2)/($B2:$F2<>"")/($B2:$F2<>"н");СТОЛБЕЦ(A$1)));"")
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,
=IFERROR(INDEX(2:2;AGGREGATE(15;6;COLUMN($B:$F)/ISNUMBER($B2:$F2);COLUMN(A2)));"")
По вопросам из тем форума, личку не читаю.
 
вот что-то типа такого
только в примере я жестко привязал ячейки которые буду заполнять, а надо, без жесткой привязки ячеек. Т.е. если в таблице появилось значение, то оно автоматом переносится в строку и за ним следующее значение из таблицы
ох уж это ограничение в 100кб((( и видео <100кб тож не вставляет

https://youtu.be/-m8LwRK7kv0 вот такой пример
 
Цитата
Mershik написал: может таак
да да, то что нужно)) Спасибо! Правда не могу понять, почему при вставке столбца в самом начале решение ломается(((

Цитата
БМВ написал: =IFERROR(INDEX(2:2;AGGREGATE(15;6;COLUMN($B:$F)/ISNUMBER($B2:$F2);COLUMN(A2)));"")
отчего-то ваш код тоже не корректно отрабатывает(( не могу понять почему(
 
Сергей, Замените $F на скажем $J или $L и протяните заново.
Изменено: memo - 12.01.2021 21:51:07
 
Цитата
memo написал:
Замените $F
в каком месте заменить)?
В примере у меня его нет, если же Вы его смотрели
Изменено: Сергей - 12.01.2021 22:14:30
 
Цитата
Сергей написал: в каком месте заменить)
Попробуйте так:
Код
=ЕСЛИОШИБКА(ИНДЕКС(2:2;АГРЕГАТ(15;6;СТОЛБЕЦ($A:$L)/ЕЧИСЛО($A2:$L2);СТОЛБЕЦ(A2)));"")

А когда вставите столбец вначале и решение поломается то измените СТОЛБЕЦ(B2) на СТОЛБЕЦ(B2)-1 и протяните заново.
 
Значит ломает СТОЛБЕЦ(A2) только не пойму почему?  
 
Сергей,
Ну вы же вставляете новый столбец в начале, соответственно все значения сдвигаются. Если вставите новый столбец между столбцами А и В то ничего править не надо будет.
 
Цитата
Сергей написал:
отчего-то ваш код тоже не корректно отрабатывает
просто его нужно правильно применять. А что касается зависимости от данных, то лучше так
=IFERROR(INDEX(2:2;AGGREGATE(15;6;COLUMN($B:$L)/ISNUMBER($B2:$L2);COLUMNS($B6:B6)));"")
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
его нужно правильно применять
Чума)) То что нужно)) Спасибо большое))
Изменено: Сергей - 12.01.2021 23:12:00
 
вариант на pq c любым кол-вом столбцов
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Replaced Value" = Table.ReplaceValue(Source,"н",null,Replacer.ReplaceValue,Table.ColumnNames(Source)),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Replaced Value", {"Столбец1"}, "Атрибут", "Значение")[[Столбец1], [Значение]],
    #"Grouped Rows" = Table.Group(#"Unpivoted Other Columns", {"Столбец1"}, {{"q", each Table.AddIndexColumn(_, "q")}}),
    Custom = Table.Combine(#"Grouped Rows"[q]),
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(Custom, {{"q", type text}}, "ru-RU"), List.Distinct(Table.TransformColumnTypes(Custom, {{"q", type text}}, "ru-RU")[q]), "q", "Значение")
in
    #"Pivoted Column"
 
живуяая тема...
уже у всех все получилось кроме Сергея
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
есть люди готовые помочь и ответить на вопросы, а есть те кто злорадствует над неудачами других...
Страницы: 1
Наверх