Страницы: 1
RSS
Оптимизация списка
 
Я хочу объединить ячейки, но с условием.

Надо из такого:
test A [ uv 1 ]
test A [ lod 4 ]
test B [ lp 3 ]
test B [ hp 8 ]
test A [ uv 8 ]
test B [ lp 3 ]
Сделать такое:
test A [ uv 1 ] [ lod 4 ] [ uv 8 ]
test B [ lp 3 ] [ hp 8 ] [ lp 3 ]
У меня кое-как получилось, но результат не всегда правильный. Можете посмотреть формулы и сказать где ошибка?

https://docs.google.com/spreadsheets/d/1TxOv3ISjmKyBBhcPzvN9iPlvNgu13dq2vW9jYT1h­rBw/edit#gid=1306290824
Изменено: tabletop_2013 - 17.04.2024 21:00:03
 
Так нужно?
Алексей М.
 
АlехМ, спасибо! К сожалению не совсем то. Я бы прикрепил документом, но при выгрузке из гугл таблиц ломаются формулы. По ссылке из поста не удалось открыть?
Изменено: tabletop_2013 - 17.04.2024 20:51:23
 
Цитата
tabletop_2013 написал:
По ссылке из поста не удалось открыть?
нет доступа
 
bigorq, спасибо, что указали на это! Поправил, сейчас все должно работать. Проверьте, пожалуйста
Изменено: tabletop_2013 - 17.04.2024 21:03:29
 
Доступ теперь есть. Смотрите формулу, поправил чуть
 
bigorq, спасибо за уделенное время! Да, я вижу Вы вручную заменили первую ячейку в переменной empty_row. Увы все ломается, если скопировать строку в новый "блок" и поэтому так же придется снова ее вручную пробивать. Я пытаюсь разобраться как избежать такого действия, но ничего в голову не приходит :(

Видимо задача не тривиальная, сколько может стоит такая услуга, не подскажите?
Изменено: tabletop_2013 - 17.04.2024 22:41:57
 
Цитата
tabletop_2013 написал:
в голову не приходит
заменить начало диапазона с фиксированного $A$5 на INDEX(A$1:A1;aggregate(14;6;(row(A$1:A1)+1)/(a$1:A1="");1)) формула не проверялась, так как в гугл таблицу вы доступ закрыли.
 
bigorq, эх, агрегат не поддерживается в гугл таблицах. Но попробую в этом направлении подвигаться, спасибо огромное!
Цитата
написал:
доступ закрыли
Странно, что пропал доступ, я ничего не менял по настройкам. Проверил лично через инкогнито, да и у Вас висят права на редактуру.

Изменено: tabletop_2013 - 18.04.2024 11:30:09
 
На работе я не авторизирован в google. Вместо аггрегате можно массивную формулу сделать
 
Ну а в Экселе можно использовать ОБЪЕДИНИТЬ() или несколько написанных UDF
 
Все, я победил! Пока что еще над "блоками" нужна ячейка с какими-то данными, но и такой результат для меня уже приемлемый
Код
=LET(
  name, LEFT($A5, FIND("[", $A5) - 2),
  benchmark, ADDRESS(MAX(FILTER(ROW(A$1:A5), ISBLANK(A$1:A5))), 1),
  range, INDIRECT(benchmark):INDEX($A4:A, MATCH(TRUE, ($A4:A=""), 0)),
  join_by_name, JOIN(" ", FILTER(range, SEARCH(name, range))),
  SUBSTITUTE(join_by_name, " " & name, "")
)
Большое всем спасибо за участие! :)
 
Это уже не Эксель ведь?
Или в новых можно так
Код
$A4:A
Изменено: Hugo - 18.04.2024 14:11:34
 
Зачем вам INDIRECT можно через INDEX все сделать. Попробуйте вариант
range, INDEX(A$1:A5;MAX(FILTER(ROW(A$1:A5), ISBLANK(A$1:A5)))):INDEX($A4:A, MATCH(TRUE, ($A4:A=""), 0)),
Изменено: bigorq - 18.04.2024 14:15:31
 
Цитата
написал:
в новых
Нельзя, наверно это гугл шитс
Изменено: Бахтиёр - 18.04.2024 14:16:37
 
Цитата
Hugo написал:
уже не Эксель ведь?
он в гугл таблицах делает
 
Цитата
написал:
Зачем вам INDIRECT можно через INDEX все сделать. Попробуйте вариант
range, INDEX(A$1:A5;MAX(FILTER(ROW(A$1:A5), ISBLANK(A$1:A5)))):INDEX($A4:A, MATCH(TRUE, ($A4:A=""), 0)),
О, этот вариант тоже работает, заберу его себе, спасибо огромное :)
Страницы: 1
Наверх