Страницы: 1
RSS
Объединить множество ячеек с пропуском пустых и переносом на новую строку
 
Добрый день!

Имеется файл с ежедневным заполнением факта, если ставится объем в ячейке с сегодняшней дато то в столбце формулы появляется название работы с объемом, и так названий работ может быть множество, при объединении ячеек через & ячейки объединяются но остаются пустые значения, если через формулу
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B4&"_"&B5&"_"&B6&"_"&B7&"_"&B8&"_"&B9&"_"&B10&"_"&B11&"_"&B1­2&"_"&B13&"_"&B14&"_"&B15&"_"&B16&"_"&B17&"_"&B18&"_"&B19&"_­"&B20&"_"&B21&"_"&B22&"_"&B23&"_"&B24&"_"&B25&"_"&B26;" ";"@");"_";" "));" ";СИМВОЛ(10));"@";" ")
существует ограничение на кол-во ячеек.
может есть более удобная формула?
 
Сергей Шистеров, Склеивание текста по условию
Изменено: Mershik - 15.09.2021 14:24:33
Не бойтесь совершенства. Вам его не достичь.
 
Не то . По ссылке как по условию в ячейку объединять текст. А нужно из 100 ячеек в одну
 
Сергей Шистеров, ничего не понял) но я думаю вы не верно трактовали или я просто не понял задачи так как не понял ТЗ (которого нет), где результат желаемый в файле в какой ячейке?
Изменено: Mershik - 15.09.2021 16:27:43
Не бойтесь совершенства. Вам его не достичь.
 
Если офис 2019, то:
=ОБЪЕДИНИТЬ("
";ИСТИНА;ЕСЛИ(D5:D100>0;C5:C100&" - "&D5:D100&" ст";""))

у вас кажется, сбилась ссылка внутри формулы, но если нужно именно так, как на вашей формуле, то:
=ОБЪЕДИНИТЬ("
";ИСТИНА;ЕСЛИ(D5:D100>0;C6:C101&" - "&D5:D100&" ст";""))
 
подкорректировал пример
 
Цитата
Бахтиёр написал: у вас кажется, сбилась ссылка внутри формулы...
при использовании формулы, выходит ошибка ИМЯ  (в формуле исправил диапазон C6:C101 на C5:C100)
excel 2016
Изменено: vikttur - 16.09.2021 09:20:02
 
=ОБЪЕДИНИТЬ() появился в 2019-м, поэтому не работаеи
 
Код
Sub ddd()
posl = Split(Sheets("Лист1").UsedRange.Address, "$")(4)
mas = Sheets("Лист1").Range("C5:D" & posl).Value
For i = 1 To UBound(mas)
    If mas(i, 2) > 0 Then x = x & vbLf & mas(i, 1) & " - " & mas(i, 2) & " ст"
Next
Sheets("Лист1").Range("X3").Value = Replace(x, vbLf, "", 1, 1)
End Sub
 
Спасибо!!! работает отлично!
Страницы: 1
Наверх