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

Вход

Регистрация

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

 

= Мир MS Excel/Значения в объедененных ячейках - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Значения в объедененных ячейках
Jhonson Дата: Пятница, 13.01.2012, 10:58 | Сообщение № 1
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Как сделать так, чтобы при ссылке на объедененные ячейки не было пустых значений.
В приложенном файле пример с более понятным пояснением.
К сообщению приложен файл: 3735668.xls (15.0 Kb)


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеКак сделать так, чтобы при ссылке на объедененные ячейки не было пустых значений.
В приложенном файле пример с более понятным пояснением.

Автор - Jhonson
Дата добавления - 13.01.2012 в 10:58
_Boroda_ Дата: Пятница, 13.01.2012, 11:11 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
где-то так:
первый файл - ответ на вопрос,
второй - для строк, столбцов и таблицы
К сообщению приложен файл: 3735668_1.xls (26.0 Kb) · 4773559.xlsb (12.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениегде-то так:
первый файл - ответ на вопрос,
второй - для строк, столбцов и таблицы

Автор - _Boroda_
Дата добавления - 13.01.2012 в 11:11
Jhonson Дата: Пятница, 13.01.2012, 11:30 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

_Boroda_, Сильно!
Но ведь задачи могут быть немного сложнее, например такая как в файле, хотя наверняка тоже можно решить формулами)))
Я вот думаю может макросом сначала снимать объеденения и вставлять значения, а потом снова как было объеденять? Или пользовательскую функцию какую нить придумать?
К сообщению приложен файл: 8368938.xls (15.0 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 13.01.2012, 11:32
 
Ответить
Сообщение_Boroda_, Сильно!
Но ведь задачи могут быть немного сложнее, например такая как в файле, хотя наверняка тоже можно решить формулами)))
Я вот думаю может макросом сначала снимать объеденения и вставлять значения, а потом снова как было объеденять? Или пользовательскую функцию какую нить придумать?

Автор - Jhonson
Дата добавления - 13.01.2012 в 11:30
IgorGo Дата: Пятница, 13.01.2012, 11:43 | Сообщение № 4
Группа: Друзья
Ранг: Форумчанин
Сообщений: 108
Репутация: 38 ±
Замечаний: 0% ±

Quote (Jhonson)
вставлять значения, а потом снова как было объеденять?

а это увы... при обьединении остается только значение левой верхней ячейки, ексель честно об этом предупреждает
 
Ответить
Сообщение
Quote (Jhonson)
вставлять значения, а потом снова как было объеденять?

а это увы... при обьединении остается только значение левой верхней ячейки, ексель честно об этом предупреждает

Автор - IgorGo
Дата добавления - 13.01.2012 в 11:43
Jhonson Дата: Пятница, 13.01.2012, 11:56 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Quote (_Boroda_)
Первый файл смотрел?

Конечно, смотрел, я к тому что, формула будет очень большая, к тому же еще нужно будет решать вопрос с горизонтальным объеденением.
А если нам нжуно будет не просто математические действия производить, а применять условия или еще что нибудь, то формула будет еще больше.

Решение мне понравилось, очень сильно придумано! +


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 13.01.2012, 11:59
 
Ответить
Сообщение
Quote (_Boroda_)
Первый файл смотрел?

Конечно, смотрел, я к тому что, формула будет очень большая, к тому же еще нужно будет решать вопрос с горизонтальным объеденением.
А если нам нжуно будет не просто математические действия производить, а применять условия или еще что нибудь, то формула будет еще больше.

Решение мне понравилось, очень сильно придумано! +

Автор - Jhonson
Дата добавления - 13.01.2012 в 11:56
_Boroda_ Дата: Пятница, 13.01.2012, 12:15 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16714
Репутация: 6503 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Quote (Jhonson)
Конечно, смотрел, я к тому что, формула будет очень большая, к тому же еще нужно будет решать вопрос с горизонтальным объеденением.

Тот бардак, что в файле из примера твоего второго поста даже пытаться решить не буду. В подобных случаях я сразу и очень громко начинаю ругаться, отдаю файл взад и требую привести в нормальный вид.
Кстати, я так вот, навскидку, не могу придумать, как формулами определить: ячейка F7 объединена по вертикали или по горизонтали?
А те решения, что я в посте 2 привел - это для небольших файликов, которые нужно быстренько посчитать, не нарушая при этом их структуру. Обычно для начальства.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Quote (Jhonson)
Конечно, смотрел, я к тому что, формула будет очень большая, к тому же еще нужно будет решать вопрос с горизонтальным объеденением.

Тот бардак, что в файле из примера твоего второго поста даже пытаться решить не буду. В подобных случаях я сразу и очень громко начинаю ругаться, отдаю файл взад и требую привести в нормальный вид.
Кстати, я так вот, навскидку, не могу придумать, как формулами определить: ячейка F7 объединена по вертикали или по горизонтали?
А те решения, что я в посте 2 привел - это для небольших файликов, которые нужно быстренько посчитать, не нарушая при этом их структуру. Обычно для начальства.

Автор - _Boroda_
Дата добавления - 13.01.2012 в 12:15
Jhonson Дата: Пятница, 13.01.2012, 12:22 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Ну да лучше конечно взад отдать "такой бардак" )))))
Я так на будущее... мало ли что... буду думать на счет UDF, если что придумаю отпишусь.
Спасибо!
Всех с наступающим старым новым годом!
И с пятницей 13!


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 13.01.2012, 12:24
 
Ответить
СообщениеНу да лучше конечно взад отдать "такой бардак" )))))
Я так на будущее... мало ли что... буду думать на счет UDF, если что придумаю отпишусь.
Спасибо!
Всех с наступающим старым новым годом!
И с пятницей 13!

Автор - Jhonson
Дата добавления - 13.01.2012 в 12:22
Jhonson Дата: Пятница, 13.01.2012, 15:31 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Уф.. все оказалось куда проще чем я думал:
Code
Option Explicit
Function merge(diap As Range)
Application.Volatile True
Dim i As Range
Dim j As Integer, a() As Variant
ReDim a(diap.Count)
For Each i In diap
       a(j) = i.MergeArea(1, 1).Value
       j = j + 1
Next
merge = a
End Function

Надеюсь кому-нибудь пригодится )))
К сообщению приложен файл: 8220349.xls (25.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Пятница, 13.01.2012, 15:33
 
Ответить
СообщениеУф.. все оказалось куда проще чем я думал:
Code
Option Explicit
Function merge(diap As Range)
Application.Volatile True
Dim i As Range
Dim j As Integer, a() As Variant
ReDim a(diap.Count)
For Each i In diap
       a(j) = i.MergeArea(1, 1).Value
       j = j + 1
Next
merge = a
End Function

Надеюсь кому-нибудь пригодится )))

Автор - Jhonson
Дата добавления - 13.01.2012 в 15:31
Jhonson Дата: Пятница, 13.01.2012, 16:11 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Вот такой вариант, только он пока работате только с горизонтальными диапазонами, я думаю что труда не составит сделать и для вертикальных
Code
Function merge_gorizont(diap As Range)
Application.Volatile True
Dim i As Range
Dim j As Integer, a() As Variant
ReDim a(diap.Count)
For Each i In diap
If i.MergeArea.Columns.Count > 1 Then
         If i.MergeArea(1, 1).Value <> i.Value Then
             a(j) = 0
         Else
             a(j) = i.MergeArea(1, 1).Value
         End If
Else
         a(j) = i.MergeArea(1, 1).Value
End If
         j = j + 1
Next
merge_gorizont = a
End Function


Файл перезалил с UDF как для горизонтальных диапазонов так и для вертикальных.
К сообщению приложен файл: __UDF.xls (36.0 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Суббота, 14.01.2012, 00:34
 
Ответить
СообщениеВот такой вариант, только он пока работате только с горизонтальными диапазонами, я думаю что труда не составит сделать и для вертикальных
Code
Function merge_gorizont(diap As Range)
Application.Volatile True
Dim i As Range
Dim j As Integer, a() As Variant
ReDim a(diap.Count)
For Each i In diap
If i.MergeArea.Columns.Count > 1 Then
         If i.MergeArea(1, 1).Value <> i.Value Then
             a(j) = 0
         Else
             a(j) = i.MergeArea(1, 1).Value
         End If
Else
         a(j) = i.MergeArea(1, 1).Value
End If
         j = j + 1
Next
merge_gorizont = a
End Function


Файл перезалил с UDF как для горизонтальных диапазонов так и для вертикальных.

Автор - Jhonson
Дата добавления - 13.01.2012 в 16:11
kim Дата: Суббота, 14.01.2012, 10:19 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация: 160 ±
Замечаний: 0% ±

Excel 2010
Еще один вариант в желтых ячейках...
К сообщению приложен файл: 3735668-kim-.xls (26.0 Kb)


Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
 
Ответить
СообщениеЕще один вариант в желтых ячейках...

Автор - kim
Дата добавления - 14.01.2012 в 10:19
  • Страница 1 из 1
  • 1
Поиск:

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