Доброго времени суток! Уважаемые, возникла следующая проблема, не могу дотумкать как СЦЕПИТЬ значения без повторений при условии, что сцепляем только те значения ячеек которые соответствуют одному дню и без пометки в столбце С (снят). Немного подробнее в файле. Подскажите пожалуйста или пните в нужном направлении
Доброго времени суток! Уважаемые, возникла следующая проблема, не могу дотумкать как СЦЕПИТЬ значения без повторений при условии, что сцепляем только те значения ячеек которые соответствуют одному дню и без пометки в столбце С (снят). Немного подробнее в файле. Подскажите пожалуйста или пните в нужном направлении VEKTORVSFREEMAN
Возможно я зря снова бьюсь над формулами, т.к. возможно формулами этот результат достичь гораздо сложнее или невозможно. Но вот не знаю я как обращаться с кодами, вот и всё. При решении формулами зациклился на условии
теперь думаю как убрать клона Сидорова и подружить Петрова с Сидоровым, что бы они стали Петров, Сидоров
Возможно я зря снова бьюсь над формулами, т.к. возможно формулами этот результат достичь гораздо сложнее или невозможно. Но вот не знаю я как обращаться с кодами, вот и всё. При решении формулами зациклился на условии
_Boroda_, хорошее решение с применением доп.столбца, но нюанс в том, что при вставке новых строк необходимо протягивать формулу в столбце D заново.
_Boroda_, хорошее решение с применением доп.столбца, но нюанс в том, что при вставке новых строк необходимо протягивать формулу в столбце D заново.VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
Сообщение отредактировал VEKTORVSFREEMAN - Четверг, 05.03.2015, 14:11
Не, ну фига себе! Где до этого говорилось про вставку новых строк в середину файла?
Могу предложить еще сцепку из 22-х слагаемых, каждое из которых проверяется на доту*, снятие и повтор фамилии. Тогда можно будет вставлять прямо в желтые ячейки. Это все, конечно, из-за условия нежелательности макросов
Не, ну фига себе! Где до этого говорилось про вставку новых строк в середину файла?
Могу предложить еще сцепку из 22-х слагаемых, каждое из которых проверяется на доту*, снятие и повтор фамилии. Тогда можно будет вставлять прямо в желтые ячейки. Это все, конечно, из-за условия нежелательности макросов
Где до этого говорилось про вставку новых строк в середину файла?
ну дословно я не указал такой нюанс, но в описании вопроса в файле упомянул, что "Колличество ячеек соотвествующих одному дню может переодически менятся от одной до двадцатидвух" Александр, прошу прощения если ввёл в заблуждение.
Просто получив от Вас код (МАКРОС) для файла примера я уверен, что не смогу его прикрутить к своему исходнику и еще больше замылю Вам мозги с вопросами. И стараюсь не прибегать к макросам, т.к. в случае малейших недочётов не пойму как подправить код.
Где до этого говорилось про вставку новых строк в середину файла?
ну дословно я не указал такой нюанс, но в описании вопроса в файле упомянул, что "Колличество ячеек соотвествующих одному дню может переодически менятся от одной до двадцатидвух" Александр, прошу прощения если ввёл в заблуждение.
Просто получив от Вас код (МАКРОС) для файла примера я уверен, что не смогу его прикрутить к своему исходнику и еще больше замылю Вам мозги с вопросами. И стараюсь не прибегать к макросам, т.к. в случае малейших недочётов не пойму как подправить код.VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
Сообщение отредактировал VEKTORVSFREEMAN - Четверг, 05.03.2015, 19:24
krosav4ig, приветствую! Классное решение, мне понравилось, спасибо! Но еще не пробовал прикручивать его к своему файлу-исходнику. Первый этап проверки формулы - вставка в середину диапазона новой строки с фамилией Баранов (в файле vektor (1) - получил корректный результат) Запинка произошла на втором этапе - поставил на против вставленной строки с фамилией баранов в столбце С "снят" (в файле vektor (2) - получил #ЧИСЛО!) Может быть есть мысли в чем может быть проблема? [p.s.]Забыл сказать, что итеративные вычисления - ВКЛЮЧЕНЫ[/p.s.]
krosav4ig, приветствую! Классное решение, мне понравилось, спасибо! Но еще не пробовал прикручивать его к своему файлу-исходнику. Первый этап проверки формулы - вставка в середину диапазона новой строки с фамилией Баранов (в файле vektor (1) - получил корректный результат) Запинка произошла на втором этапе - поставил на против вставленной строки с фамилией баранов в столбце С "снят" (в файле vektor (2) - получил #ЧИСЛО!) Может быть есть мысли в чем может быть проблема? [p.s.]Забыл сказать, что итеративные вычисления - ВКЛЮЧЕНЫ[/p.s.]VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
Сообщение отредактировал VEKTORVSFREEMAN - Пятница, 06.03.2015, 06:05
VEKTORVSFREEMAN, добрый день, дело в том, что при пересчете итеративные формулы с нуля не пересчитываются, нужно вручную перевводить формулу и жать F9 или использовать макрос для их пересчета. И в формулу забыл добавить проверку на ошибки. Заменил формулу в имени на
это имя нужно для работы макроса макрос в модуле листа при изменении ячеек включает итеративные вычисления и пересчитывает все итеративные формулы, которые ссылаются измененные ячейки
[vba]
Код
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) With Application: .DisplayAlerts = 0: .Iteration = 0 If Me.CircularReference Is Nothing Then .DisplayAlerts = 1: Exit Sub Else Dim dic: Set dic = CreateObject("scripting.dictionary") Dim cell As Range, rngRef As Range Set rngRef = Nothing For Each cell In Me.UsedRange.SpecialCells(xlCellTypeFormulas) If Not Intersect(cell.Precedents.Cells, cell) Is Nothing Then dic(cell.Address) = cell.Precedents.Address If rngRef Is Nothing Then Set rngRef = cell.Precedents _ Else Set rngRef = Union(rngRef, cell.Precedents) End If Next cell Dim rngAC As Range, rngSel As Range, strAddr Set rngSel = Selection: Set rngAC = ActiveCell If Intersect(rngRef, Target) Is Nothing Then GoTo lb .ScreenUpdating = 0: .EnableEvents = 0: .Iteration = 1 For Each strAddr In dic.keys .ScreenUpdating = 0: .EnableEvents = 0: If Not Intersect(Range(dic(strAddr)), Target) Is Nothing Then With Range(strAddr) .Select: .Replace "=", "=" Do: .Calculate: Loop Until [check] End With End If Next rngSel.Select: rngAC.Activate lb: .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With Set dic = Nothing Set cell = Nothing: Set rngRef = Nothing: Set rngAC = Nothing: Set rngSel = Nothing End Sub
[/vba]
добавил в файл еще 1 вариант (макрофункцию) [p.s.]Ну не сдержался я, написал макрос [/p.s.] [offtop]
Цитата
добрый день
ну или вечер...
VEKTORVSFREEMAN, добрый день, дело в том, что при пересчете итеративные формулы с нуля не пересчитываются, нужно вручную перевводить формулу и жать F9 или использовать макрос для их пересчета. И в формулу забыл добавить проверку на ошибки. Заменил формулу в имени на
это имя нужно для работы макроса макрос в модуле листа при изменении ячеек включает итеративные вычисления и пересчитывает все итеративные формулы, которые ссылаются измененные ячейки
[vba]
Код
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) With Application: .DisplayAlerts = 0: .Iteration = 0 If Me.CircularReference Is Nothing Then .DisplayAlerts = 1: Exit Sub Else Dim dic: Set dic = CreateObject("scripting.dictionary") Dim cell As Range, rngRef As Range Set rngRef = Nothing For Each cell In Me.UsedRange.SpecialCells(xlCellTypeFormulas) If Not Intersect(cell.Precedents.Cells, cell) Is Nothing Then dic(cell.Address) = cell.Precedents.Address If rngRef Is Nothing Then Set rngRef = cell.Precedents _ Else Set rngRef = Union(rngRef, cell.Precedents) End If Next cell Dim rngAC As Range, rngSel As Range, strAddr Set rngSel = Selection: Set rngAC = ActiveCell If Intersect(rngRef, Target) Is Nothing Then GoTo lb .ScreenUpdating = 0: .EnableEvents = 0: .Iteration = 1 For Each strAddr In dic.keys .ScreenUpdating = 0: .EnableEvents = 0: If Not Intersect(Range(dic(strAddr)), Target) Is Nothing Then With Range(strAddr) .Select: .Replace "=", "=" Do: .Calculate: Loop Until [check] End With End If Next rngSel.Select: rngAC.Activate lb: .ScreenUpdating = 1: .EnableEvents = 1: .DisplayAlerts = 1: End With Set dic = Nothing Set cell = Nothing: Set rngRef = Nothing: Set rngAC = Nothing: Set rngSel = Nothing End Sub
[/vba]
добавил в файл еще 1 вариант (макрофункцию) [p.s.]Ну не сдержался я, написал макрос [/p.s.] [offtop]
krosav4ig, доброго времени суток! Спасибо, что очередной раз откликаетесь на мой вопрос. Повторюсь, что в макросах совсем не разбираюсь и они у меня вызывают очень много вопросов ( и вряд ли мне удастся применить их на файле-исходнике) Обнаружил пока в Вашем примере недочёт. К примеру вставил Симонова (результат в первой строке получен корректный) поставил напротив Симонова отметку "снят" данные из первой строки полностью исчезли (т.е. все фамилии) Тем не менее спасибо за науку. Поковыряюсь на досуге с Вашим файлом, может послужит началом для изучения макрофункций (хотя думаю код тяжеловат для начинающих) [p.s.]При первом открытии файла почему то повис комп, при повторном задумался, но сдержался (видимо моё железо слабовато для работы сложных функций!?)[/p.s.]
krosav4ig, доброго времени суток! Спасибо, что очередной раз откликаетесь на мой вопрос. Повторюсь, что в макросах совсем не разбираюсь и они у меня вызывают очень много вопросов ( и вряд ли мне удастся применить их на файле-исходнике) Обнаружил пока в Вашем примере недочёт. К примеру вставил Симонова (результат в первой строке получен корректный) поставил напротив Симонова отметку "снят" данные из первой строки полностью исчезли (т.е. все фамилии) Тем не менее спасибо за науку. Поковыряюсь на досуге с Вашим файлом, может послужит началом для изучения макрофункций (хотя думаю код тяжеловат для начинающих) [p.s.]При первом открытии файла почему то повис комп, при повторном задумался, но сдержался (видимо моё железо слабовато для работы сложных функций!?)[/p.s.]VEKTORVSFREEMAN
gling, спасибо за идею! Беглая проверка вроде недочётов не нашла. Работает. Но пока затрудняюсь ответить получится ли применить данное решение с умной таблицей. Взглянул на макрос, вроде должен с ним разобраться для применения к исходнику если не найду альтернативы с формулами (пусть и с доп.ячейками) Спасибо!
gling, спасибо за идею! Беглая проверка вроде недочётов не нашла. Работает. Но пока затрудняюсь ответить получится ли применить данное решение с умной таблицей. Взглянул на макрос, вроде должен с ним разобраться для применения к исходнику если не найду альтернативы с формулами (пусть и с доп.ячейками) Спасибо!VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
_Boroda_, доброго времени суток! Ваше решение с именованным диапазоном мне очень понравилось и работает так, как хотелось бы. Попробую применить данное решение к исходнику. Еще раз спасибо!
_Boroda_, доброго времени суток! Ваше решение с именованным диапазоном мне очень понравилось и работает так, как хотелось бы. Попробую применить данное решение к исходнику. Еще раз спасибо! VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
Сообщение отредактировал VEKTORVSFREEMAN - Вторник, 10.03.2015, 06:59
Применил решение Александра (_Boroda_) из сообщения №17. Прикрутил предложенное решение к исходнику в течении пяти минут. Всё работает! Огромное спасибо! Всем кто участвовал в решении, так же Большая благодарность, т.к. любое предложенное Вами решение, Уважаемые Господа, для меня является хорошим уроком.
Применил решение Александра (_Boroda_) из сообщения №17. Прикрутил предложенное решение к исходнику в течении пяти минут. Всё работает! Огромное спасибо! Всем кто участвовал в решении, так же Большая благодарность, т.к. любое предложенное Вами решение, Уважаемые Господа, для меня является хорошим уроком.VEKTORVSFREEMAN
"Опыт - это то, что получаешь, не получив того, что хотел"
Сообщение отредактировал VEKTORVSFREEMAN - Вторник, 10.03.2015, 08:16