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

Вход

Регистрация

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

 

= Мир MS Excel/сцепить (соединить) данные до пустой ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » сцепить (соединить) данные до пустой ячейки (Формулы/Formulas)
сцепить (соединить) данные до пустой ячейки
С-Елена Дата: Пятница, 27.03.2015, 08:14 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
имею очень большой прайс
данные (в моем случае размерный ряд) не имеют определенной системы, но над данными и есть пустая ячейка (выделено желтым)
Как собрать в пустую ячейку (желтую ) все данные, которые находятся до следующей пустой ячейки?

я -выделяла массив, нажала F9- все в 1 ячейку слилось, но строк очень много, файлы часто обновляются..
формулу придумать не могу , что бы ввести ее в пустые ячейк.
Помогите пожалуйста с решением задачи или помогите ссылкой на подобную задачу..я несколько дней смотрю сайт , не нашла
К сообщению приложен файл: 0320891.xlsx (10.2 Kb)
 
Ответить
СообщениеДобрый день!
имею очень большой прайс
данные (в моем случае размерный ряд) не имеют определенной системы, но над данными и есть пустая ячейка (выделено желтым)
Как собрать в пустую ячейку (желтую ) все данные, которые находятся до следующей пустой ячейки?

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

Автор - С-Елена
Дата добавления - 27.03.2015 в 08:14
С-Елена Дата: Среда, 15.04.2015, 10:37 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
никто не поможет? или хотя бы ссылку где поискать решение..это наверное кому то очень просто но мне сложно
 
Ответить
Сообщениеникто не поможет? или хотя бы ссылку где поискать решение..это наверное кому то очень просто но мне сложно

Автор - С-Елена
Дата добавления - 15.04.2015 в 10:37
Hugo Дата: Среда, 15.04.2015, 10:55 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Предлагаю такой вариант:
1. в любом свободном столбце со второй строки протягиваем формулу
Код
=IF(A2<>"",D1,ROW())

Тут протягивал в D.
Далее в D1 ставим результат из D2 (у меня почему-то 0???)
2. В первой строке (не в столбце A) используем уже ранее написанную UDF
Код
=VLOOKUPCOUPLE(A:D,4,D1,1,";",0)

Последний аргумент указывает что нужно не удалять повторы.
Разделители аргументов ставьте свои!!!

3. Копипастом размножаем её в нужные строки ниже.

Код функции где-то на форуме есть, поищу.
Странно, не нашёл...
[vba]
Код
Function VLOOKUPCOUPLE(Table As Variant, _
                         SearchColumnNum As Integer, _
                         SearchValue As Variant, _
                         RezultColumnNum As Integer, _
                         Separator_ As String, _
                         Optional BezPovtorov As Boolean = True)

'Table - таблица, где ищем
'SearchColumnNum - столбец, где ищем
'SearchValue - данные, которые ищем
'RezultColumnNum - колонка, откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце
'BezPovtorov - если поставить 0, то будут выведены все повторяющиеся совпадения

      Dim i As Long, tmp As String, vlk

      If TypeName(Table) = "Range" Then Table = Intersect(Table.Parent.UsedRange, Table).Value
      If BezPovtorov Then
          With CreateObject("Scripting.Dictionary")
              For i = 1 To UBound(Table)
                  If Table(i, SearchColumnNum) = SearchValue Then
                      tmp = Table(i, RezultColumnNum)
                      If tmp <> "" Then
                          If Not .Exists(tmp) Then
                    .Add tmp, 0&
                    vlk = vlk & Separator_ & Table(i, RezultColumnNum)
                          End If
                      End If
                  End If
              Next i
          End With
      Else
          For i = 1 To UBound(Table)
              If Table(i, SearchColumnNum) = SearchValue Then
                  vlk = vlk & Separator_ & Table(i, RezultColumnNum)
              End If
          Next i
      End If
      If vlk > 0 Then vlk = Mid(vlk, Len(Separator_) + 1) Else vlk = ""
      VLOOKUPCOUPLE = vlk
End Function
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 15.04.2015, 11:03
 
Ответить
СообщениеПредлагаю такой вариант:
1. в любом свободном столбце со второй строки протягиваем формулу
Код
=IF(A2<>"",D1,ROW())

Тут протягивал в D.
Далее в D1 ставим результат из D2 (у меня почему-то 0???)
2. В первой строке (не в столбце A) используем уже ранее написанную UDF
Код
=VLOOKUPCOUPLE(A:D,4,D1,1,";",0)

Последний аргумент указывает что нужно не удалять повторы.
Разделители аргументов ставьте свои!!!

3. Копипастом размножаем её в нужные строки ниже.

Код функции где-то на форуме есть, поищу.
Странно, не нашёл...
[vba]
Код
Function VLOOKUPCOUPLE(Table As Variant, _
                         SearchColumnNum As Integer, _
                         SearchValue As Variant, _
                         RezultColumnNum As Integer, _
                         Separator_ As String, _
                         Optional BezPovtorov As Boolean = True)

'Table - таблица, где ищем
'SearchColumnNum - столбец, где ищем
'SearchValue - данные, которые ищем
'RezultColumnNum - колонка, откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце
'BezPovtorov - если поставить 0, то будут выведены все повторяющиеся совпадения

      Dim i As Long, tmp As String, vlk

      If TypeName(Table) = "Range" Then Table = Intersect(Table.Parent.UsedRange, Table).Value
      If BezPovtorov Then
          With CreateObject("Scripting.Dictionary")
              For i = 1 To UBound(Table)
                  If Table(i, SearchColumnNum) = SearchValue Then
                      tmp = Table(i, RezultColumnNum)
                      If tmp <> "" Then
                          If Not .Exists(tmp) Then
                    .Add tmp, 0&
                    vlk = vlk & Separator_ & Table(i, RezultColumnNum)
                          End If
                      End If
                  End If
              Next i
          End With
      Else
          For i = 1 To UBound(Table)
              If Table(i, SearchColumnNum) = SearchValue Then
                  vlk = vlk & Separator_ & Table(i, RezultColumnNum)
              End If
          Next i
      End If
      If vlk > 0 Then vlk = Mid(vlk, Len(Separator_) + 1) Else vlk = ""
      VLOOKUPCOUPLE = vlk
End Function
[/vba]

Автор - Hugo
Дата добавления - 15.04.2015 в 10:55
DJ_Marker_MC Дата: Среда, 15.04.2015, 11:11 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Добрый день. Можно просто макросом без функций
[vba]
Код
Sub Marker()
Dim s As String
Application.ScreenUpdating = False
irow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To irow
     If Cells(i, 1).Value = "" Then
         adr = Cells(i, 1).Address
     End If
      
     If Range(adr).Value = "" Then
         Range(adr).Value = Cells(i, 1).Value
     Else
         Range(adr).Value = Range(adr).Value & ";" & Cells(i, 1).Value
     End If
Next i
Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: marker.xls (37.0 Kb)
 
Ответить
СообщениеДобрый день. Можно просто макросом без функций
[vba]
Код
Sub Marker()
Dim s As String
Application.ScreenUpdating = False
irow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To irow
     If Cells(i, 1).Value = "" Then
         adr = Cells(i, 1).Address
     End If
      
     If Range(adr).Value = "" Then
         Range(adr).Value = Cells(i, 1).Value
     Else
         Range(adr).Value = Range(adr).Value & ";" & Cells(i, 1).Value
     End If
Next i
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - DJ_Marker_MC
Дата добавления - 15.04.2015 в 11:11
VEKTORVSFREEMAN Дата: Среда, 15.04.2015, 11:32 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 772
Репутация: 130 ±
Замечаний: 0% ±

MS Office Excel 2010
С-Елена, здравствуйте.
Предложу решение формулой без дополнительных ячеек. Но есть нюансы
1) Сцепляет до 50 идущих подряд ячеек (без пустых), но можно увеличить формулу
2) В жёлтых ячейках перечисление начинается с точки и запятой ";"
3) При вставке новой строки в середину диапазона работы формулы - эта строка формулой уже учитываться не будет

Формула для А1
Код
=ЛЕВСИМВ(СЦЕПИТЬ(";";A2;";";A3;";";A4;";";A5;";";A6;";";A7;";";A8;";";A9;";";A10;";";A11;";";A12;";";A13;";";A14;";";A15;";";A16;";";A17;";";A18;";";A19;";";A20;";";A21;";";A22;";";A23;";";A24;";";A25;";";A26;";";A27;";";A28;";";A29;";";A30;";";A31;";";A32;";";A33;";";A34;";";A35;";";A36;";";A37;";";A38;";";A39;";";A40;";";A41;";";A42;";";A43;";";A44;";";A45;";";A46;";";A47;";";A48;";";A49;";";A50;";";A51);ПОИСК(";;";СЦЕПИТЬ(A2;";";A3;";";A4;";";A5;";";A6;";";A7;";";A8;";";A9;";";A10;";";A11;";";A12;";";A13;";";A14;";";A15;";";A16;";";A17;";";A18;";";A19;";";A20;";";A21;";";A22;";";A23;";";A24;";";A25;";";A26;";";A27;";";A28;";";A29;";";A30;";";A31;";";A32;";";A33;";";A34;";";A35;";";A36;";";A37;";";A38;";";A39;";";A40;";";A41;";";A42;";";A43;";";A44;";";A45;";";A46;";";A47;";";A48;";";A49;";";A50;";";A51);1))

Её копируете Ctrl+с и вставляете Ctrl+v в следующие жёлтые ячейки
В общем смотрите файл
К сообщению приложен файл: 0320891-1-.xlsx (10.9 Kb)


"Опыт - это то, что получаешь, не получив того, что хотел"
 
Ответить
СообщениеС-Елена, здравствуйте.
Предложу решение формулой без дополнительных ячеек. Но есть нюансы
1) Сцепляет до 50 идущих подряд ячеек (без пустых), но можно увеличить формулу
2) В жёлтых ячейках перечисление начинается с точки и запятой ";"
3) При вставке новой строки в середину диапазона работы формулы - эта строка формулой уже учитываться не будет

Формула для А1
Код
=ЛЕВСИМВ(СЦЕПИТЬ(";";A2;";";A3;";";A4;";";A5;";";A6;";";A7;";";A8;";";A9;";";A10;";";A11;";";A12;";";A13;";";A14;";";A15;";";A16;";";A17;";";A18;";";A19;";";A20;";";A21;";";A22;";";A23;";";A24;";";A25;";";A26;";";A27;";";A28;";";A29;";";A30;";";A31;";";A32;";";A33;";";A34;";";A35;";";A36;";";A37;";";A38;";";A39;";";A40;";";A41;";";A42;";";A43;";";A44;";";A45;";";A46;";";A47;";";A48;";";A49;";";A50;";";A51);ПОИСК(";;";СЦЕПИТЬ(A2;";";A3;";";A4;";";A5;";";A6;";";A7;";";A8;";";A9;";";A10;";";A11;";";A12;";";A13;";";A14;";";A15;";";A16;";";A17;";";A18;";";A19;";";A20;";";A21;";";A22;";";A23;";";A24;";";A25;";";A26;";";A27;";";A28;";";A29;";";A30;";";A31;";";A32;";";A33;";";A34;";";A35;";";A36;";";A37;";";A38;";";A39;";";A40;";";A41;";";A42;";";A43;";";A44;";";A45;";";A46;";";A47;";";A48;";";A49;";";A50;";";A51);1))

Её копируете Ctrl+с и вставляете Ctrl+v в следующие жёлтые ячейки
В общем смотрите файл

Автор - VEKTORVSFREEMAN
Дата добавления - 15.04.2015 в 11:32
Мир MS Excel » Вопросы и решения » Вопросы по Excel » сцепить (соединить) данные до пустой ячейки (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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