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

Вход

Регистрация

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

 

= Мир MS Excel/Замена уникального числа на другое число - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена уникального числа на другое число (Макросы/Sub)
Замена уникального числа на другое число
Andrius Дата: Четверг, 23.03.2017, 17:29 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Привет всем форумчанам и знатокам Экселя!
Попалась мне ситуация, когда требуется определённое уникальное число заменить на другое.
Желательно с применением скрипта-макроса,т.к. внутри ячейки может быть формула.
В файле показан пример, когда из базовой таблицы данных, переводятся в соседнюю таблицу числа.
Вот в этой (второй) таблице, нужно в столбце Данные№1 заменить уникальное число 1,85 на 1. Остальные числа в столбце в нули.
В столбце Данные№2 заменить уникальное число 3,0 на 1. Остальные числа столбца в нули.
В столбце Данные№3 заменить уникальное число 3,1 на 1. Остальные числа столбца в нули.
К каждому столбцу я прикрепил кнопки для Макроса, после применения которых, должно получиться как показано в примере.
Пожалуйста. Напишите скрипт-макроса хотя бы для одного столбца. А я потом по аналогу образца, сделаю и для остальных столбцов.
Вряд ли можно сделать единый скрипт, работающий сразу по всем трём столбцам. Поэтому разбил на три кнопки.

P.S. Забыл показать в примере, что эти уникальные числа, могут попадаться и в других столбцах, но мне требуется замена конкретного числа в определённом столбце.
К сообщению приложен файл: 5538901.xls (35.0 Kb)


Сообщение отредактировал Andrius - Четверг, 23.03.2017, 17:34
 
Ответить
СообщениеПривет всем форумчанам и знатокам Экселя!
Попалась мне ситуация, когда требуется определённое уникальное число заменить на другое.
Желательно с применением скрипта-макроса,т.к. внутри ячейки может быть формула.
В файле показан пример, когда из базовой таблицы данных, переводятся в соседнюю таблицу числа.
Вот в этой (второй) таблице, нужно в столбце Данные№1 заменить уникальное число 1,85 на 1. Остальные числа в столбце в нули.
В столбце Данные№2 заменить уникальное число 3,0 на 1. Остальные числа столбца в нули.
В столбце Данные№3 заменить уникальное число 3,1 на 1. Остальные числа столбца в нули.
К каждому столбцу я прикрепил кнопки для Макроса, после применения которых, должно получиться как показано в примере.
Пожалуйста. Напишите скрипт-макроса хотя бы для одного столбца. А я потом по аналогу образца, сделаю и для остальных столбцов.
Вряд ли можно сделать единый скрипт, работающий сразу по всем трём столбцам. Поэтому разбил на три кнопки.

P.S. Забыл показать в примере, что эти уникальные числа, могут попадаться и в других столбцах, но мне требуется замена конкретного числа в определённом столбце.

Автор - Andrius
Дата добавления - 23.03.2017 в 17:29
sboy Дата: Четверг, 23.03.2017, 17:46 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Не совсем понял, зачем нужно 3 макроса, это можно сделать простой формулой
пример для столбца данные1
Код
=ЕСЛИ(B2=1,85;1;)
К сообщению приложен файл: 0006606.xls (35.5 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Не совсем понял, зачем нужно 3 макроса, это можно сделать простой формулой
пример для столбца данные1
Код
=ЕСЛИ(B2=1,85;1;)

Автор - sboy
Дата добавления - 23.03.2017 в 17:46
Andrius Дата: Четверг, 23.03.2017, 17:55 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, спасибо вам за быстрый отклик и способ решения. Но к сожалению в моей ситуации (примере), нельзя применить ваш способ,т.к. внутри ячейки с числом, уже есть формула ( она тащит число из основной таблицы). Дело ещё в том, что данные постоянно обновляются. И вторая таблица будет постоянно нужна для работы. А с вашим способом, получилось, ОДНОРАЗОВОЕ решение задачи.
Поэтому и требуется скрипт-Макроса ( в условиях задачи я указал, что внутри ячейки уже есть формула).


Сообщение отредактировал Andrius - Четверг, 23.03.2017, 17:55
 
Ответить
Сообщение sboy, спасибо вам за быстрый отклик и способ решения. Но к сожалению в моей ситуации (примере), нельзя применить ваш способ,т.к. внутри ячейки с числом, уже есть формула ( она тащит число из основной таблицы). Дело ещё в том, что данные постоянно обновляются. И вторая таблица будет постоянно нужна для работы. А с вашим способом, получилось, ОДНОРАЗОВОЕ решение задачи.
Поэтому и требуется скрипт-Макроса ( в условиях задачи я указал, что внутри ячейки уже есть формула).

Автор - Andrius
Дата добавления - 23.03.2017 в 17:55
sboy Дата: Четверг, 23.03.2017, 17:58 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Тогда я совсем не понял смысла задачи, нужна третья таблица, как в примере?
т.к. внутри ячейки уже есть формула ( она тащит число из основной таблицы)

так я вашу формулу и изменил, чтоб тащила не цифру, а нужную замену 1 или 0


Яндекс: 410016850021169
 
Ответить
СообщениеТогда я совсем не понял смысла задачи, нужна третья таблица, как в примере?
т.к. внутри ячейки уже есть формула ( она тащит число из основной таблицы)

так я вашу формулу и изменил, чтоб тащила не цифру, а нужную замену 1 или 0

Автор - sboy
Дата добавления - 23.03.2017 в 17:58
Andrius Дата: Четверг, 23.03.2017, 18:01 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, к сожалению формулу в ячейке числа НЕЛЬЗЯ менять.
Я полностью согласен, что ваш способ решает задачку.
Но дело в том, что придут другие данные в ОСНОВНУЮ таблицу,но числа НЕ продублируются во второй таблице,т.к. вы заменили формулу.
А применение Макроса позволит избежать появления третьих, четвёртых таблиц. Всё будет сразу решаться во ВТОРОЙ таблице.


Сообщение отредактировал Andrius - Четверг, 23.03.2017, 18:03
 
Ответить
Сообщение sboy, к сожалению формулу в ячейке числа НЕЛЬЗЯ менять.
Я полностью согласен, что ваш способ решает задачку.
Но дело в том, что придут другие данные в ОСНОВНУЮ таблицу,но числа НЕ продублируются во второй таблице,т.к. вы заменили формулу.
А применение Макроса позволит избежать появления третьих, четвёртых таблиц. Всё будет сразу решаться во ВТОРОЙ таблице.

Автор - Andrius
Дата добавления - 23.03.2017 в 18:01
Andrius Дата: Четверг, 23.03.2017, 18:07 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, тысячу извинений.
Я не сразу врубился, что ваша формула сразу работает по первой таблице. Думал она тут же во второй таблице всё меняет.
Блин. Как же всё просто оказалось. Опыта мне не хватило так широко мыслить.
Спасибо вам sboy, большое и огромное!!!
Очень выручили и ваше решение позволило избежать сложных действий.
 
Ответить
Сообщение sboy, тысячу извинений.
Я не сразу врубился, что ваша формула сразу работает по первой таблице. Думал она тут же во второй таблице всё меняет.
Блин. Как же всё просто оказалось. Опыта мне не хватило так широко мыслить.
Спасибо вам sboy, большое и огромное!!!
Очень выручили и ваше решение позволило избежать сложных действий.

Автор - Andrius
Дата добавления - 23.03.2017 в 18:07
Andrius Дата: Четверг, 23.03.2017, 18:21 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Странная у меня ситуация получается в реальности применения данного решения ( предложенного экспертом sboy ).
Если числа поступили в ОСНОВНУЮ таблицу через формулу ( другую), то формула замены чисел НЕ срабатывает.
Если числа в ОСНОВНОЙ таблице впечатывать вручную ( что я и сделал при создании файла-примера), то формула замены работает.
Как так. Почему??? Формат ячеек везде одинаковый ( числовой). И не работает формула замены. (((
Может кто нибудь из экспертов Экселя составит всё таки скрипт-Макрос для моей задачки.
Пожалуйста.


Сообщение отредактировал Andrius - Четверг, 23.03.2017, 18:50
 
Ответить
СообщениеСтранная у меня ситуация получается в реальности применения данного решения ( предложенного экспертом sboy ).
Если числа поступили в ОСНОВНУЮ таблицу через формулу ( другую), то формула замены чисел НЕ срабатывает.
Если числа в ОСНОВНОЙ таблице впечатывать вручную ( что я и сделал при создании файла-примера), то формула замены работает.
Как так. Почему??? Формат ячеек везде одинаковый ( числовой). И не работает формула замены. (((
Может кто нибудь из экспертов Экселя составит всё таки скрипт-Макрос для моей задачки.
Пожалуйста.

Автор - Andrius
Дата добавления - 23.03.2017 в 18:21
sboy Дата: Пятница, 24.03.2017, 10:03 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
формула замены чисел НЕ срабатывает

"НЕ ВЕРЮ!" (Станиславский)
Держите (работает по трем столбцам сразу)
[vba]
Код
Sub Щелчок()
Dim Data1()
Data1 = Range("B2:D6").Value
    For y = 1 To UBound(Data1, 2)
        Select Case y
        Case 1
        q = 1.85
        Case 2
        q = 3
        Case 3
        q = 3.1
        End Select
            For x = 1 To UBound(Data1, 1)
                If Data1(x, y) = q Then
                Data1(x, y) = 1
                Else: Data1(x, y) = 0
                End If
            Next x
    Next y
Range("F2:H6").Value = Data1
End Sub
[/vba]
К сообщению приложен файл: 9567189.xls (46.0 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
формула замены чисел НЕ срабатывает

"НЕ ВЕРЮ!" (Станиславский)
Держите (работает по трем столбцам сразу)
[vba]
Код
Sub Щелчок()
Dim Data1()
Data1 = Range("B2:D6").Value
    For y = 1 To UBound(Data1, 2)
        Select Case y
        Case 1
        q = 1.85
        Case 2
        q = 3
        Case 3
        q = 3.1
        End Select
            For x = 1 To UBound(Data1, 1)
                If Data1(x, y) = q Then
                Data1(x, y) = 1
                Else: Data1(x, y) = 0
                End If
            Next x
    Next y
Range("F2:H6").Value = Data1
End Sub
[/vba]

Автор - sboy
Дата добавления - 24.03.2017 в 10:03
Andrius Дата: Пятница, 24.03.2017, 16:10 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, спасибо вам БОЛЬШОЕ!!!
Всё таки смогли создать скрипт, да ещё ЕДИНЫЙ. Очень вам благодарен, за профессиональное решение!!!
Насчёт ситуации, что не срабатывает решение в виде формулы, сейчас напишу отдельный коммент с примером (файлом).
 
Ответить
Сообщение sboy, спасибо вам БОЛЬШОЕ!!!
Всё таки смогли создать скрипт, да ещё ЕДИНЫЙ. Очень вам благодарен, за профессиональное решение!!!
Насчёт ситуации, что не срабатывает решение в виде формулы, сейчас напишу отдельный коммент с примером (файлом).

Автор - Andrius
Дата добавления - 24.03.2017 в 16:10
Andrius Дата: Пятница, 24.03.2017, 16:17 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот пример ( в прикреплённом файле) реальной ситуации, когда не срабатывает ваша формула.
В таблице примера, в столбец А попадают данные в виде обычного КопиПаста.
Далее из строки чисел, я с помощью формул, вытаскиваю в раздельные столбцы ( B,C,D ) ПЕРВЫЕ три числа.
И вот с ними мне надо дальше работать. Пока предлагаю укороченный пример по столбцу (Е) первого числа. В котором надо находить число 1,85.
В соседнем столбце (F), я применяю вашу формулу. И как видите, формула блокируется и показывает везде нули.
Но стоит только в столбце Е, перепечатать число в РУЧНУЮ, как формула замечательно срабатывает.
Форматы проверил. Везде числовые. Числа тоже вродебы идентичные другу другу. Но вот облом.
К сообщению приложен файл: __--.xls (26.5 Kb)
 
Ответить
СообщениеВот пример ( в прикреплённом файле) реальной ситуации, когда не срабатывает ваша формула.
В таблице примера, в столбец А попадают данные в виде обычного КопиПаста.
Далее из строки чисел, я с помощью формул, вытаскиваю в раздельные столбцы ( B,C,D ) ПЕРВЫЕ три числа.
И вот с ними мне надо дальше работать. Пока предлагаю укороченный пример по столбцу (Е) первого числа. В котором надо находить число 1,85.
В соседнем столбце (F), я применяю вашу формулу. И как видите, формула блокируется и показывает везде нули.
Но стоит только в столбце Е, перепечатать число в РУЧНУЮ, как формула замечательно срабатывает.
Форматы проверил. Везде числовые. Числа тоже вродебы идентичные другу другу. Но вот облом.

Автор - Andrius
Дата добавления - 24.03.2017 в 16:17
sboy Дата: Пятница, 24.03.2017, 16:29 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
У Вас после отработки формулой получается текст, поэтому и не работает
правильная Ваша формула будет
Код
=--ПСТР(A3;1;ПОИСК(" ";A3;1))

или
Код
=1*ПСТР(A9;1;ПОИСК(" ";A9;1))

и все заработает
К сообщению приложен файл: 7981071.xls (26.5 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеУ Вас после отработки формулой получается текст, поэтому и не работает
правильная Ваша формула будет
Код
=--ПСТР(A3;1;ПОИСК(" ";A3;1))

или
Код
=1*ПСТР(A9;1;ПОИСК(" ";A9;1))

и все заработает

Автор - sboy
Дата добавления - 24.03.2017 в 16:29
Andrius Дата: Пятница, 24.03.2017, 17:55 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, ай да молодец! respect
В такой казалось бы ясной ситуации и в тоже время тупиковой, сумели НАЙТИ слабое звено. Здорово!
Всё логично и правильно.
Удивлён правда, что назначение мной ЧИСЛОВОГО формата для данных ячеек НЕ срабатывает. Приоритет имеет формула.
Теперь уже всё ясно. Очень полезно для опыта.
Спасибо вам большое!


Сообщение отредактировал Andrius - Пятница, 24.03.2017, 18:03
 
Ответить
Сообщение sboy, ай да молодец! respect
В такой казалось бы ясной ситуации и в тоже время тупиковой, сумели НАЙТИ слабое звено. Здорово!
Всё логично и правильно.
Удивлён правда, что назначение мной ЧИСЛОВОГО формата для данных ячеек НЕ срабатывает. Приоритет имеет формула.
Теперь уже всё ясно. Очень полезно для опыта.
Спасибо вам большое!

Автор - Andrius
Дата добавления - 24.03.2017 в 17:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Замена уникального числа на другое число (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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