Страницы: 1
RSS
Не "СЦЕПИТЬ" пустые ячейки, как не сцеплять пустые ячейки и смещать пустые ячейки
 
Здравствуйте, гуру эксель!
Бьюсь над такой задачей. Нужно сцепить ячейки между столбцами М и Т по хитрому условию, если они все заполнены тогда вопросов нет, сцепляю по обычному. Но ячейки в них могут быть как заполнены так и нет.  И нужно эту пустоту как бы смещать! Ну в файле я вроде все понятно сделал.  
 
Пробел - это не пустота. Замените в формулах " " на "". Тогда сработает лобовая атака:
Код
=ЕСЛИ(ДЛСТР(M2);M2&"-";"")&ЕСЛИ(ДЛСТР(N2);N2&"-";"")&ЕСЛИ(ДЛСТР(O2);O2&"-";"")&ЕСЛИ(ДЛСТР(P2);P2&"-";"")&ЕСЛИ(ДЛСТР(Q2);Q2&"-";"")&ЕСЛИ(ДЛСТР(R2);R2&"-";"")&ЕСЛИ(ДЛСТР(S2);S2&"-";"")&ЕСЛИ(ДЛСТР(T2);T2&"-";"")

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, спасибо, только вот последний символ остается по вашей формуле "-", ну я его в соседней ячейке Y удаляю так :

Код
=ЛЕВСИМВ(X2;ДЛСТР(X2)-1)
 
а потом в следующей опять сцепляю и вроде получается тоже самое
 
для U2
Код
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(СЦЕПИТЬ(M2;" ";N2;" ";O2;" ";P2;" ";Q2;" ";R2;" ";S2;" ";T2));" ";"-") 
 
V, спасибо, элегантно так...
 
UDF:
Код
Function Коробка(Стороны As Range, Да_Нет As Range) As String
i = 1
    For Each cell In Да_Нет
        If cell = "Да" Then
           Коробка = Коробка & "-" & Mid(Стороны(1, i), 9, 1)
        End If
        i = i + 1
    Next cell
End Function


а потом ="КР-В-150"&Коробка($B$1:$I$1;B2:I2).
если "КР-В-150" не меняется, то в конце UDF добавить строку Коробка ="КР-В-150"&Коробка
Изменено: Ivan.kh - 27.11.2014 14:04:56
 
Ivan.kh, великолепное решение!!! Спасибо
 
Цитата
Timur пишет: последний символ остается по вашей формуле "-"
Каково условие - таков результат. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Добрый день, друзья. Помогите добрым советом. Как поместить данные из столбца А в соответствующий столбец B между скобками? При этом ячейки столбца B оставлять пустыми, если соответствующая ячейка столба A пуста.
 
Skanavy4, создать новую тему. См. правила форума.
А вообще, так: =ЕСЛИ(B2<>"";"Металлы("&B2&")";"")
 
=ЕСЛИ(B2<>"";СЦЕП("Металлы[";B2;"]");"")
Кто ясно мыслит, тот ясно излагает.
 
Большое спасибо! Не знаю как Вы это делаете, но все работает. Если можно объяснить простыми словами, то мне очень интересно узнать, какая логическая последовательность в таком наборе символов? =ЕСЛИ(B2<>"";"Металлы("&B2&")";"")
 
Добрый день
Адрес ячейки из которой вызвана функция Application.Caller.Address.
Подскажите как определиьть адрес ячейки параметра функции?
Как узнать адесс ячеки surf_prep?

Код
Function Наименование(surf_prep As Variant) As String
 
Цитата
narod svs написал:
Как узнать адесс ячеки surf_prep?
1. А если там значение, а не диапазон? 2.  А если присмотреться то название темы совершенно о другом.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
1. А если там значение, а не диапазон? 2.  А если присмотреться то название темы совершенно о другом.
Ну можно добавить проверку там должен быть указан толко адрес ячейки
Да, может не в тему))
 
Цитата
narod svs написал:
Подскажите как определиьть адрес ячейки параметра функции?
Сам нашел
Вдруг кому пригодится
адрес ячейки параметра функции
номр строки
номер стобца
Код
Function Наименование(surf_prep As Variant) As String
'--------
MsgBox surf_prep.Address(RowAbsolute:=False, ColumnAbsolute:=False)
MsgBox surf_prep.Row
MsgBox surf_prep.Column
'--------
End Function
Изменено: narod svs - 08.08.2020 11:19:27
Страницы: 1
Наверх