Доброго времени суток! Собственно, столкнулась со следующей проблемой: Есть список клиентов: Иванов Иван Иванович Петров Петр Петрович и т.д. Таких клиентов порядка 500. Необходимо пронумеровать, что бы получилось так: Иванов Иван Иванович, 1 Петров Петр Петрович, 2 и т.д. т.е. в конце записи в ячейке поставить "," и порядковый номер. Полагаю, что это можно сделать макросом. Когда-то при мне аналогичные действия делали ребята. Но я уже голову сломала, в попытках найти решение данной проблемы....
Доброго времени суток! Собственно, столкнулась со следующей проблемой: Есть список клиентов: Иванов Иван Иванович Петров Петр Петрович и т.д. Таких клиентов порядка 500. Необходимо пронумеровать, что бы получилось так: Иванов Иван Иванович, 1 Петров Петр Петрович, 2 и т.д. т.е. в конце записи в ячейке поставить "," и порядковый номер. Полагаю, что это можно сделать макросом. Когда-то при мне аналогичные действия делали ребята. Но я уже голову сломала, в попытках найти решение данной проблемы....Disskort
ДА!! Спустя час своего времени, я, наконец, это сделала: моя первая тема на этом форуме создана! [moder]Поздравляю! Теперь бы вот еще Правила прочитать! Особенно п.3.
ДА!! Спустя час своего времени, я, наконец, это сделала: моя первая тема на этом форуме создана! [moder]Поздравляю! Теперь бы вот еще Правила прочитать! Особенно п.3.Disskort
Сообщение отредактировал _Boroda_ - Четверг, 05.05.2016, 14:50
Модератор: Поздравляю! Теперь бы вот еще Правила прочитать! Особенно п.3.
Уважаемый модератор, правила форума прочитаны были раз на 5 и почти изучены... Дело в том, что конкретный пример выложить не могу, т.к. это будет являться публикацией персональных данных клиентов. Завтра изменю содержимое файла и приложу в тему. В виде jpeg или xls лучше прикрепить?
Модератор: Поздравляю! Теперь бы вот еще Правила прочитать! Особенно п.3.
Уважаемый модератор, правила форума прочитаны были раз на 5 и почти изучены... Дело в том, что конкретный пример выложить не могу, т.к. это будет являться публикацией персональных данных клиентов. Завтра изменю содержимое файла и приложу в тему. В виде jpeg или xls лучше прикрепить?
И часто не находится файлов. Хде он? Или задача уже не актуальна?
Очень даже актуальна! :) Работа-работа, будь она не ладна. Все всегда что-то хотят от тебя... Вам знакомо это чувство? :) Ладно, ближе к телу, значить... Итак. Прилагаю 2 файла: Пример 1 - исходный файл Пример 2 - результат. Необходимо в каждой ячейке поставить "," и порядковый номер. В 1 и 2 столбцах по 8 человек. в 3 и 4 по 12 человек. Соответственно все это нужно пронумеровать.
И часто не находится файлов. Хде он? Или задача уже не актуальна?
Очень даже актуальна! :) Работа-работа, будь она не ладна. Все всегда что-то хотят от тебя... Вам знакомо это чувство? :) Ладно, ближе к телу, значить... Итак. Прилагаю 2 файла: Пример 1 - исходный файл Пример 2 - результат. Необходимо в каждой ячейке поставить "," и порядковый номер. В 1 и 2 столбцах по 8 человек. в 3 и 4 по 12 человек. Соответственно все это нужно пронумеровать.Disskort
Что за двузначные числа у вас? 41, 42, 88, 89 и т.д. Откуда они и как получаются
Людей по порядку пронумеровать нужно. По столбцам. Первый столбец с 1 по 40. Второй столбец с 41 по 80. Третий столбец с 81 по 141. Четвертый столбец со 142 по 202. 1 и 2 столбец - на одно время приходится 8 человек. 1 столбец - в сумме 40 человек 2 столбец - в сумме 40 человек 3 и 4 столбец - на одно время приходится 12 человек. 3 столбец - в сумме 60 человек 4 столбец - в сумме 60 человек.
Во втором файле все числа (в каждой ячейке) вбивать не стала (имхо, лишняя трата времени). Смысл достаточно простой... Неужели не понятно выразилась? :)
Смысл в том, что есть только ФИО в каждой ячейке. Нужна нумерация этих людей в порядке, который описан выше. Как это сделать? При помощи макроса должно быть, но я не знаю как написать (
Что за двузначные числа у вас? 41, 42, 88, 89 и т.д. Откуда они и как получаются
Людей по порядку пронумеровать нужно. По столбцам. Первый столбец с 1 по 40. Второй столбец с 41 по 80. Третий столбец с 81 по 141. Четвертый столбец со 142 по 202. 1 и 2 столбец - на одно время приходится 8 человек. 1 столбец - в сумме 40 человек 2 столбец - в сумме 40 человек 3 и 4 столбец - на одно время приходится 12 человек. 3 столбец - в сумме 60 человек 4 столбец - в сумме 60 человек.
Во втором файле все числа (в каждой ячейке) вбивать не стала (имхо, лишняя трата времени). Смысл достаточно простой... Неужели не понятно выразилась? :)
Смысл в том, что есть только ФИО в каждой ячейке. Нужна нумерация этих людей в порядке, который описан выше. Как это сделать? При помощи макроса должно быть, но я не знаю как написать (Disskort
=ЕСЛИ(B9="";"";B9&"; "&СЧЁТЗ(B$9:B9)+СЧЁТЗ($A$9:A$72)-СЧЁТ($A$9:$A$72)) К сообщению приложен файл: 5285971_1.xlsx(22Kb)
Да, почти) 1 и 2 столбец - верно. 3 и 4 столбец - там по 12 человек приходится на каждое время, соответственно, нужно каждую строчку нумеровать по порядку. Т.е. если ячейка пустая (нет фио), то она либо так же и оставалась пустой, либо в нее вставлялось значение ", [порядковый номер]" И таблица должна быть одна, а не две :) [moder]Ну, если Вам лень потом скопировать вторую и вставить значениями в первую (тем более, что таблица, как Вы пишете ниже, формируется посредством Cntrl+C/+V), то ждите того, кто Вам макрос напишет. Формулой я бы сделал, а макрос мне некогда писать.
=ЕСЛИ(B9="";"";B9&"; "&СЧЁТЗ(B$9:B9)+СЧЁТЗ($A$9:A$72)-СЧЁТ($A$9:$A$72)) К сообщению приложен файл: 5285971_1.xlsx(22Kb)
Да, почти) 1 и 2 столбец - верно. 3 и 4 столбец - там по 12 человек приходится на каждое время, соответственно, нужно каждую строчку нумеровать по порядку. Т.е. если ячейка пустая (нет фио), то она либо так же и оставалась пустой, либо в нее вставлялось значение ", [порядковый номер]" И таблица должна быть одна, а не две :) [moder]Ну, если Вам лень потом скопировать вторую и вставить значениями в первую (тем более, что таблица, как Вы пишете ниже, формируется посредством Cntrl+C/+V), то ждите того, кто Вам макрос напишет. Формулой я бы сделал, а макрос мне некогда писать.Disskort
Сообщение отредактировал _Boroda_ - Пятница, 06.05.2016, 14:27
Таблица формируется в ручную, по средствам "ctrl+c, ctrl+v". Список человек может быть 400-800. Только изначальные списки с ФИО клиентов, от куда копируются данные идут как "фио". без нумерации...
Таблица формируется в ручную, по средствам "ctrl+c, ctrl+v". Список человек может быть 400-800. Только изначальные списки с ФИО клиентов, от куда копируются данные идут как "фио". без нумерации...Disskort
Модератор: Ну, если Вам лень потом скопировать вторую и вставить значениями в первую, то ждите того, кто Вам макрос напишет. Формулой я бы сделал, а макрос мне некогда писать.
Окей.. Скопировать можно. Не догадалась. А вставлять специальной вставкой, так понимаю? Как значения?
Модератор: Ну, если Вам лень потом скопировать вторую и вставить значениями в первую, то ждите того, кто Вам макрос напишет. Формулой я бы сделал, а макрос мне некогда писать.
Окей.. Скопировать можно. Не догадалась. А вставлять специальной вставкой, так понимаю? Как значения?Disskort
Sub ertert() Dim x, i&, j&, k&, arr, cnt& arr = Array(1, 41, 81, 142) For j = LBound(arr) To UBound(arr) k = 2 * j + 2 With Range(Cells(9, k), Cells(Rows.Count, k).End(xlUp)) x = .Value: cnt = arr(j) For i = 1 To UBound(x) If j > 1 Then If Len(x(i, 1)) Then x(i, 1) = x(i, 1) & ", " & cnt If (i <> 13) * (i <> 26) * (i <> 39) * (i <> 52) Then cnt = cnt + 1 Else If Len(x(i, 1)) Then x(i, 1) = x(i, 1) & ", " & cnt: cnt = cnt + 1 End If Next i .Value = x End With Next j End Sub
[/vba]
Disskort, привет попробуйте так: [vba]
Код
Sub ertert() Dim x, i&, j&, k&, arr, cnt& arr = Array(1, 41, 81, 142) For j = LBound(arr) To UBound(arr) k = 2 * j + 2 With Range(Cells(9, k), Cells(Rows.Count, k).End(xlUp)) x = .Value: cnt = arr(j) For i = 1 To UBound(x) If j > 1 Then If Len(x(i, 1)) Then x(i, 1) = x(i, 1) & ", " & cnt If (i <> 13) * (i <> 26) * (i <> 39) * (i <> 52) Then cnt = cnt + 1 Else If Len(x(i, 1)) Then x(i, 1) = x(i, 1) & ", " & cnt: cnt = cnt + 1 End If Next i .Value = x End With Next j End Sub
Sub macro() Application.ScreenUpdating = False lr = Cells.Find("*", , xlValues, xlWhole, xlByRows, xlPrevious).Row lc = Cells(9, Columns.Count).End(xlToLeft).Column k = 1 For j = 2 To lc Step 2 For i = 9 To lr If Cells(i, j) <> "" Then If InStr(Cells(i, j), ",") Then Cells(i, j).Replace What:=",*", Replacement:=", " & k, LookAt:=xlPart Else Cells(i, j) = Cells(i, j) & ", " & k End If k = k + 1 End If Next i, j End Sub
[/vba]
Disskort, еще вариант: [vba]
Код
Sub macro() Application.ScreenUpdating = False lr = Cells.Find("*", , xlValues, xlWhole, xlByRows, xlPrevious).Row lc = Cells(9, Columns.Count).End(xlToLeft).Column k = 1 For j = 2 To lc Step 2 For i = 9 To lr If Cells(i, j) <> "" Then If InStr(Cells(i, j), ",") Then Cells(i, j).Replace What:=",*", Replacement:=", " & k, LookAt:=xlPart Else Cells(i, j) = Cells(i, j) & ", " & k End If k = k + 1 End If Next i, j End Sub