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

Вход

Регистрация

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

 

= Мир MS Excel/формула на формирование данных - Мир MS Excel

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

Excel 2010
Здравствуйте, на одном дружественном форуме я задала данный вопрос, но тишина неделю :(, может быть я неверно выразилась.
в общем хотела бы услышать ваше мнение по оптимизации задачи.
Задача следующая:
Имеется файл со списком фамилий построчно.
Напротив каждой ФАМИЛИИ в столбцах указаны значения:
B-M по должности
O-Z по зарплате.
Необходима формула(может быть макрос), который бы анализировал по отдельности данные столбцы (имеется в виду должность и з/пл) на предмет их изменения, и в новом столбце (столбец N и AA - покрашены зеленым)указывал дату этого изменения.
Заранее большое спасибо.
PS (файл планируется для постоянного использования именно в таком ракурсе)
прилагаю файл.
задачу я решила (через ЕСЛИ, столбцы AB-AL и само решение - AM), и как мне кажется очень допотопно :(, и неэффективно с учетом того, что кол-во столбцов, которые нужно будет сравнваить - будет расти и следовательно увеличивается шанс ошибиться.
как вы думаете, есть способ улучшить решение данной задачи?
К сообщению приложен файл: 3671805.xlsx (13.3 Kb)


учусь excel и vba

Сообщение отредактировал Zolotaya - Понедельник, 07.10.2013, 13:57
 
Ответить
СообщениеЗдравствуйте, на одном дружественном форуме я задала данный вопрос, но тишина неделю :(, может быть я неверно выразилась.
в общем хотела бы услышать ваше мнение по оптимизации задачи.
Задача следующая:
Имеется файл со списком фамилий построчно.
Напротив каждой ФАМИЛИИ в столбцах указаны значения:
B-M по должности
O-Z по зарплате.
Необходима формула(может быть макрос), который бы анализировал по отдельности данные столбцы (имеется в виду должность и з/пл) на предмет их изменения, и в новом столбце (столбец N и AA - покрашены зеленым)указывал дату этого изменения.
Заранее большое спасибо.
PS (файл планируется для постоянного использования именно в таком ракурсе)
прилагаю файл.
задачу я решила (через ЕСЛИ, столбцы AB-AL и само решение - AM), и как мне кажется очень допотопно :(, и неэффективно с учетом того, что кол-во столбцов, которые нужно будет сравнваить - будет расти и следовательно увеличивается шанс ошибиться.
как вы думаете, есть способ улучшить решение данной задачи?

Автор - Zolotaya
Дата добавления - 07.10.2013 в 13:56
SkyPro Дата: Понедельник, 07.10.2013, 13:59 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
есть способ улучшить решение данной задачи?

Есть.
http://www.excelworld.ru/forum/3-454-1


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 07.10.2013, 14:02
 
Ответить
Сообщение
есть способ улучшить решение данной задачи?

Есть.
http://www.excelworld.ru/forum/3-454-1

Автор - SkyPro
Дата добавления - 07.10.2013 в 13:59
Zolotaya Дата: Понедельник, 07.10.2013, 14:07 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SkyPro, я извиняюсь, а где я нарушила правила?
файл приложен. описание вроде дала, к сож,
не очень понимаю, как тема с описанием истории (history log) может мне помочь здесь.


учусь excel и vba
 
Ответить
СообщениеSkyPro, я извиняюсь, а где я нарушила правила?
файл приложен. описание вроде дала, к сож,
не очень понимаю, как тема с описанием истории (history log) может мне помочь здесь.

Автор - Zolotaya
Дата добавления - 07.10.2013 в 14:07
SkyPro Дата: Понедельник, 07.10.2013, 14:10 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Про правила я написал до изменения вашего поста.
Тема с логгированием может помочь в этом вопросе:
Цитата
Необходима формула(может быть макрос), который бы анализировал по отдельности данные столбцы (имеется в виду должность и з/пл) на предмет их изменения, и в новом столбце (столбец N и AA - покрашены зеленым)указывал дату этого изменения.

Или я не правильно понял суть вопроса, и вам необходимо именно СРАВНЕНИЕ, а не отслеживание изменений?

ЗЫ: видимо действительно не правильно понял. Так что прошу прощения.


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 07.10.2013, 14:16
 
Ответить
СообщениеПро правила я написал до изменения вашего поста.
Тема с логгированием может помочь в этом вопросе:
Цитата
Необходима формула(может быть макрос), который бы анализировал по отдельности данные столбцы (имеется в виду должность и з/пл) на предмет их изменения, и в новом столбце (столбец N и AA - покрашены зеленым)указывал дату этого изменения.

Или я не правильно понял суть вопроса, и вам необходимо именно СРАВНЕНИЕ, а не отслеживание изменений?

ЗЫ: видимо действительно не правильно понял. Так что прошу прощения.

Автор - SkyPro
Дата добавления - 07.10.2013 в 14:10
Zolotaya Дата: Понедельник, 07.10.2013, 14:32 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
изучила макрос по изменениям но только никак не могу понять как он мне может помочь.
по файлу :
1. внутри по старым так сказать столбцам должности - изменений не будет, тк это история. Новые столбцы будут добавляться и ВПРом подтягиваться значения на эту дату. они могут совпадать со старыми значениями (то есть должность не менялась у человека за месяц) и не совпадать (то есть например было изменение должности). макрос выдает инфо типа "добавление новой строки и изменение ячейки". но я их вношу автоматически ВПР, то есть все ячейки меняю, и потом уже должна проводить анализ с ячейкой предыдущего столбца на предмет сопоставимости. (не знаю, доступно ли объяснила). %)

ЗЫ да, да, именно последовательное СРАВНЕНИЕ значений


учусь excel и vba

Сообщение отредактировал Zolotaya - Понедельник, 07.10.2013, 14:34
 
Ответить
Сообщениеизучила макрос по изменениям но только никак не могу понять как он мне может помочь.
по файлу :
1. внутри по старым так сказать столбцам должности - изменений не будет, тк это история. Новые столбцы будут добавляться и ВПРом подтягиваться значения на эту дату. они могут совпадать со старыми значениями (то есть должность не менялась у человека за месяц) и не совпадать (то есть например было изменение должности). макрос выдает инфо типа "добавление новой строки и изменение ячейки". но я их вношу автоматически ВПР, то есть все ячейки меняю, и потом уже должна проводить анализ с ячейкой предыдущего столбца на предмет сопоставимости. (не знаю, доступно ли объяснила). %)

ЗЫ да, да, именно последовательное СРАВНЕНИЕ значений

Автор - Zolotaya
Дата добавления - 07.10.2013 в 14:32
SkyPro Дата: Понедельник, 07.10.2013, 15:37 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
При помощи UDF можно так:
=compare(диапазон (только одна строка), номер строки с датами)

Разделитель запятая + пробел.

Под ваши задачи подходит.

[vba]
Код
Function compare(rRange As Range, dt&) As String
Application.Volatile
Dim rCell As Range, txt$
On Error Resume Next
txt = ""
For Each rCell In rRange
If rCell.Value <> rCell.Offset(0, 1).Value Then
         If rCell.Value <> "" Or rCell.Offset(0, 1).Value <> "" Then
             txt = txt & ", " & Cells(dt, rCell.Column + 1).Value
             Debug.Print txt
         End If
End If
Next
             txt = Right(txt, Len(txt) - 2)
             txt = Left(txt, Len(txt) - 2)
             compare = txt
End Function

[/vba]
К сообщению приложен файл: compare.xlsm (19.5 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Понедельник, 07.10.2013, 15:46
 
Ответить
СообщениеПри помощи UDF можно так:
=compare(диапазон (только одна строка), номер строки с датами)

Разделитель запятая + пробел.

Под ваши задачи подходит.

[vba]
Код
Function compare(rRange As Range, dt&) As String
Application.Volatile
Dim rCell As Range, txt$
On Error Resume Next
txt = ""
For Each rCell In rRange
If rCell.Value <> rCell.Offset(0, 1).Value Then
         If rCell.Value <> "" Or rCell.Offset(0, 1).Value <> "" Then
             txt = txt & ", " & Cells(dt, rCell.Column + 1).Value
             Debug.Print txt
         End If
End If
Next
             txt = Right(txt, Len(txt) - 2)
             txt = Left(txt, Len(txt) - 2)
             compare = txt
End Function

[/vba]

Автор - SkyPro
Дата добавления - 07.10.2013 в 15:37
Zolotaya Дата: Вторник, 15.10.2013, 11:32 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
все супер! но есть одно НО, у меня файл под 11 мбайт, и он просто виснет с этой функцией :( пыталась в макрос затащить расчет функции но я полный "тук-тук". как думаете, что можно применить, чтобы файл отвис ? выкунить системник в окно не прдлагать :)

UPD

немножко пошаманила и файл перестал висеть, еще раз биг СПС!!!!


учусь excel и vba

Сообщение отредактировал Zolotaya - Вторник, 15.10.2013, 12:22
 
Ответить
Сообщениевсе супер! но есть одно НО, у меня файл под 11 мбайт, и он просто виснет с этой функцией :( пыталась в макрос затащить расчет функции но я полный "тук-тук". как думаете, что можно применить, чтобы файл отвис ? выкунить системник в окно не прдлагать :)

UPD

немножко пошаманила и файл перестал висеть, еще раз биг СПС!!!!

Автор - Zolotaya
Дата добавления - 15.10.2013 в 11:32
SkyPro Дата: Вторник, 15.10.2013, 11:41 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Попробуйте убрать из кода строку [vba]
Код
Application.Volatile
[/vba]
И добавить перед End Sub строку:[vba]
Код
txt = ""
[/vba]


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Вторник, 15.10.2013, 11:45
 
Ответить
СообщениеПопробуйте убрать из кода строку [vba]
Код
Application.Volatile
[/vba]
И добавить перед End Sub строку:[vba]
Код
txt = ""
[/vba]

Автор - SkyPro
Дата добавления - 15.10.2013 в 11:41
_Boroda_ Дата: Вторник, 15.10.2013, 12:34 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Наверное, так будет еще немного пошустрее (сам принцип кода не менял)


[offtop]
выкунить системник

Прелестно!
Здравствуй, дедушка Фрейд.
Мадам знает толк ...


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


[offtop]
выкунить системник

Прелестно!
Здравствуй, дедушка Фрейд.
Мадам знает толк ...

Автор - _Boroda_
Дата добавления - 15.10.2013 в 12:34
SkyPro Дата: Вторник, 15.10.2013, 12:37 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
_Boroda_, я хоть прав в том, что обнуление текстовой переменной вконце добавить "шустрости" ?

[offtop]Только с третьего раза прочитал так, как написано :)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Вторник, 15.10.2013, 12:37
 
Ответить
Сообщение_Boroda_, я хоть прав в том, что обнуление текстовой переменной вконце добавить "шустрости" ?

[offtop]Только с третьего раза прочитал так, как написано :)

Автор - SkyPro
Дата добавления - 15.10.2013 в 12:37
_Boroda_ Дата: Вторник, 15.10.2013, 12:56 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
я хоть прав в том, что обнуление текстовой переменной вконце добавить "шустрости"

Теоретически да, но, я думаю, что последовательное отсечение вариантов Ifами и "снятие" значений с листа в переменные должно дать больший эффект.


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

Теоретически да, но, я думаю, что последовательное отсечение вариантов Ifами и "снятие" значений с листа в переменные должно дать больший эффект.

Автор - _Boroda_
Дата добавления - 15.10.2013 в 12:56
Zolotaya Дата: Вторник, 15.10.2013, 13:33 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
большое спасибо, и правда, перестало виснуть!


учусь excel и vba
 
Ответить
Сообщениебольшое спасибо, и правда, перестало виснуть!

Автор - Zolotaya
Дата добавления - 15.10.2013 в 13:33
Мир MS Excel » Вопросы и решения » Вопросы по Excel » формула на формирование данных (Формулы)
  • Страница 1 из 1
  • 1
Поиск:

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