Добрый день. Помогите пожалуйста Имеются два файла эксель. Первый файл - установленное ПО и его версии в разрезе ПО(т.е. одна(!) строчка winword-версия) Второй файл - установленное ПО и компы, на которых оно установлено, в виде winword-комп1, winword-комп2 и тд. Т.е. много строк для одного ПО. Мне надо объединить эти два файла так, чтобы все это пришло к виду winword- комп1, комп2 и тд в одной(!) строке. Одно ПО-одна строка
С VBA столкнулась час назад(аналогично по макросам) Написала блок-схему как вижу я это действо, но дальше полный 0, к сожалению.
Блок схема
Начало цикла i=1, пока i<=45593 Присвоить переменной А1 значение(!) ячейки А(i+1) из файла 1 Найти полное совпадение А1 в файле 1 и объединить ячейки с потерей данных(1 столбец!) Найти полное совпадение переменной А1 в файле 2 Присвоить переменной А2=А(k) –номер ячейки с найденным значением в файле 2
Начало цикла x=1, пока А(x+1)=А1 (файл 1) m=x+1 В файле 1 объединить ячейки С(m)(без потери даных) Присвоить переменной С1 значение объединенных ячеек Конец цикла
Присвоить переменно n =m-1 (кол-во циклов) Скопировать С1 в файл 2 С(k), где А(k)=А2 Скопировать в Е(k) n, где А(k)=А2
Конец цикла
Буду очень благодарна помощи, советам, сочувствую, чему-нибудь Файлы огромные, на фирме более 1 000 компов
Для примера Файл1 - http://files.mail.ru/1BE86E5974BC4F0684432E6D6A679BCB Файл2 - http://files.mail.ru/74438DDAA758439CA58E323FF42B00B4
Добрый день. Помогите пожалуйста Имеются два файла эксель. Первый файл - установленное ПО и его версии в разрезе ПО(т.е. одна(!) строчка winword-версия) Второй файл - установленное ПО и компы, на которых оно установлено, в виде winword-комп1, winword-комп2 и тд. Т.е. много строк для одного ПО. Мне надо объединить эти два файла так, чтобы все это пришло к виду winword- комп1, комп2 и тд в одной(!) строке. Одно ПО-одна строка
С VBA столкнулась час назад(аналогично по макросам) Написала блок-схему как вижу я это действо, но дальше полный 0, к сожалению.
Блок схема
Начало цикла i=1, пока i<=45593 Присвоить переменной А1 значение(!) ячейки А(i+1) из файла 1 Найти полное совпадение А1 в файле 1 и объединить ячейки с потерей данных(1 столбец!) Найти полное совпадение переменной А1 в файле 2 Присвоить переменной А2=А(k) –номер ячейки с найденным значением в файле 2
Начало цикла x=1, пока А(x+1)=А1 (файл 1) m=x+1 В файле 1 объединить ячейки С(m)(без потери даных) Присвоить переменной С1 значение объединенных ячеек Конец цикла
Присвоить переменно n =m-1 (кол-во циклов) Скопировать С1 в файл 2 С(k), где А(k)=А2 Скопировать в Е(k) n, где А(k)=А2
Конец цикла
Буду очень благодарна помощи, советам, сочувствую, чему-нибудь Файлы огромные, на фирме более 1 000 компов
Для примера Файл1 - http://files.mail.ru/1BE86E5974BC4F0684432E6D6A679BCB Файл2 - http://files.mail.ru/74438DDAA758439CA58E323FF42B00B4Наталия
Пока задача ясна не до конца! Дайте корректные примеры! пока я не вижу не в одном файле конструкции winword-комп1, winword-комп2. так же не вижу принципиальной разницы между файлом два и итоговым! опишите подробней и дайте корректные примеры! то есть то как есть сейчас как нужно но только на примере одних и тех же данных, а то у вас в первом файле фотошоп, а во втором бугалтерия и неодной похожей позиции чтоб понять как есть и как нужно! Ну и для затравки, у вас неправильно посчитано количество компов! там их 18 а не 19! для расчета предлагаю такую формулу
Пока задача ясна не до конца! Дайте корректные примеры! пока я не вижу не в одном файле конструкции winword-комп1, winword-комп2. так же не вижу принципиальной разницы между файлом два и итоговым! опишите подробней и дайте корректные примеры! то есть то как есть сейчас как нужно но только на примере одних и тех же данных, а то у вас в первом файле фотошоп, а во втором бугалтерия и неодной похожей позиции чтоб понять как есть и как нужно! Ну и для затравки, у вас неправильно посчитано количество компов! там их 18 а не 19! для расчета предлагаю такую формулу
Лучше покажите на примере Ваших файла 1 и файла 2 то, что Вы реально хотите видеть в итоге!
Вы "выставили" файл "Итог", который просто повторил Ваш файл 2. Алгоритм получения файла "Итог" на основе файла 1 и файла 2 НЕ "ПРОСМАТРИВАЕТСЯ"!!!Матрёна
Наталия! Совсем не понятно, какую функцию должен выполнить Ваш файл 1 в решении Вашей проблемы. По-моему, он вообще не нужен. Полагаю, Вам требуется "разорвать" информацию из каждой ячейки столба F файла 2 на строки, количество которых (строк) равно количеству названий компов, указанных в соответствующей ячейке столба F файла 2. Имена компов разделены пробелом? Цитирую одного из уважаемых экспертов EXCEL: Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Наталия! Совсем не понятно, какую функцию должен выполнить Ваш файл 1 в решении Вашей проблемы. По-моему, он вообще не нужен. Полагаю, Вам требуется "разорвать" информацию из каждой ячейки столба F файла 2 на строки, количество которых (строк) равно количеству названий компов, указанных в соответствующей ячейке столба F файла 2. Имена компов разделены пробелом? Цитирую одного из уважаемых экспертов EXCEL: Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...Матрёна
Прощу прощенья за сумбур и непонятное изложение проблемы. Исправляюсь.
Есть некая система мониторинга, из которой я экспортировала два эксель файла. В первом файле ПО и на каких компах стоит(причем одно и тоже ПО повторяется(строчка) столько раз, на скольких компах стоит. Во втором файле ПО, его версия(каждое ПО в единственном экземпляре) и(о ужас, моя невнимательность...%) ) количество компов, на которых стоит данное ПО
Я модифицировала второй файл, добавила в него колонки(лицензия, имена машин...) и стала с ним "работать" добавляя имена машин из файла один. Я объединяла ячейки простым макросом, найденным на просторах инета, копировала это дело и вставляла в соответствующую колонку файла два.
Именно этот процесс объединения ячеек и копирования в соответствующую колонку файла два я и хотела бы автоматизировать.
Код макроса прилагаю. [qoute] Sub Mak() Dim c As Range Dim s As String
For Each c In Selection If s = "" Then s = c Else s = s & " " & c c.ClearContents End If Next c With Selection .Range("A1") = s .Merge End With End Sub [/qoute]
[b]Poltava[/b] Спасибо, это моя ошибка, пропустила пробел в именах, их там 19 И спасибо большое за формулу, как я поняла, она считает пробелы и прибавляет один(т.к. последнее имя не имеет за собой пробела?)?
[b]Матрёна[/b]
Спасибо, я постаралась исправится. Пессимизм т.к. я слишком мало понимаю(но стараюсь исправится...), а люди не очень любят помогать "с нуля"...
Имена машин в файле 1 пробелом не разделены. Макрос это делает. До этого я в ворде меняла абзац на пробел. Т.е. копировала все имена машин в ворд, и через "заменить все" меняла абзац на пробел, после чего копировала в файл-итог(модифицированный файл 2)
Файл два мне нужен, т.к. там версии ПО, а так же каждое ПО в единственном экземпляре(одно ПО=одна строчка). Поэтому его я взяла за основу и стала с ним "работать"
Еще раз спасибо всем большое за помощь!!
Прощу прощенья за сумбур и непонятное изложение проблемы. Исправляюсь.
Есть некая система мониторинга, из которой я экспортировала два эксель файла. В первом файле ПО и на каких компах стоит(причем одно и тоже ПО повторяется(строчка) столько раз, на скольких компах стоит. Во втором файле ПО, его версия(каждое ПО в единственном экземпляре) и(о ужас, моя невнимательность...%) ) количество компов, на которых стоит данное ПО
Я модифицировала второй файл, добавила в него колонки(лицензия, имена машин...) и стала с ним "работать" добавляя имена машин из файла один. Я объединяла ячейки простым макросом, найденным на просторах инета, копировала это дело и вставляла в соответствующую колонку файла два.
Именно этот процесс объединения ячеек и копирования в соответствующую колонку файла два я и хотела бы автоматизировать.
Код макроса прилагаю. [qoute] Sub Mak() Dim c As Range Dim s As String
For Each c In Selection If s = "" Then s = c Else s = s & " " & c c.ClearContents End If Next c With Selection .Range("A1") = s .Merge End With End Sub [/qoute]
[b]Poltava[/b] Спасибо, это моя ошибка, пропустила пробел в именах, их там 19 И спасибо большое за формулу, как я поняла, она считает пробелы и прибавляет один(т.к. последнее имя не имеет за собой пробела?)?
[b]Матрёна[/b]
Спасибо, я постаралась исправится. Пессимизм т.к. я слишком мало понимаю(но стараюсь исправится...), а люди не очень любят помогать "с нуля"...
Имена машин в файле 1 пробелом не разделены. Макрос это делает. До этого я в ворде меняла абзац на пробел. Т.е. копировала все имена машин в ворд, и через "заменить все" меняла абзац на пробел, после чего копировала в файл-итог(модифицированный файл 2)
Файл два мне нужен, т.к. там версии ПО, а так же каждое ПО в единственном экземпляре(одно ПО=одна строчка). Поэтому его я взяла за основу и стала с ним "работать"
Наталия! См. вариант - макрос. Макрос прост, как советский трЁльник: 1. "просит" файл-мониторинг (в Вашей терминологии - файл 1), 1.1. копирует инфо на лист "MONITOR", закрывает файл-мониторинг, 1.2. инфо на листе "MONITOR" сортирует (2 уровня: столб А (столб С)), 2. "чистит" лист "OTCHET", начиная со 2 строки, 2.1. строит нужную картинку на листе "OTCHET".
P.S. Полагаю, колонки (см. ниже) - "рукопашные": 1. Необходимость лицензии, 2. Latest Version, 3. Оldest Version.
Наталия! См. вариант - макрос. Макрос прост, как советский трЁльник: 1. "просит" файл-мониторинг (в Вашей терминологии - файл 1), 1.1. копирует инфо на лист "MONITOR", закрывает файл-мониторинг, 1.2. инфо на листе "MONITOR" сортирует (2 уровня: столб А (столб С)), 2. "чистит" лист "OTCHET", начиная со 2 строки, 2.1. строит нужную картинку на листе "OTCHET".
P.S. Полагаю, колонки (см. ниже) - "рукопашные": 1. Необходимость лицензии, 2. Latest Version, 3. Оldest Version.Матрёна