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

Вход

Регистрация

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

 

= Мир MS Excel/Сделать так, чтобы любой символ в ячейке заменялся на 1 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сделать так, чтобы любой символ в ячейке заменялся на 1 (Формулы/Formulas)
Сделать так, чтобы любой символ в ячейке заменялся на 1
biomirror Дата: Вторник, 29.12.2015, 10:59 | Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Возможно ли в Exel 2013 сделать так, чтобы любой символ в определенных диапазонах ячеек заменялся на 1 (единицу) или на любой другой символ?
К сообщению приложен файл: 7509221.xlsx (8.6 Kb)
 
Ответить
СообщениеВозможно ли в Exel 2013 сделать так, чтобы любой символ в определенных диапазонах ячеек заменялся на 1 (единицу) или на любой другой символ?

Автор - biomirror
Дата добавления - 29.12.2015 в 10:59
Nic70y Дата: Вторник, 29.12.2015, 11:03 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
выделить диапазон (если менять не на всем листе)
ctrl+h
найти *
заменить на 1
заменить все


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 29.12.2015, 11:04
 
Ответить
Сообщениевыделить диапазон (если менять не на всем листе)
ctrl+h
найти *
заменить на 1
заменить все

Автор - Nic70y
Дата добавления - 29.12.2015 в 11:03
biomirror Дата: Вторник, 29.12.2015, 11:33 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

В ячейках разные значения.
По сути, мне нужно некое подобие функции "ЕСЛИ":
если в ячейке есть, какое-то значение, то необходимо, чтобы оно заменилось на 1.
 
Ответить
СообщениеВ ячейках разные значения.
По сути, мне нужно некое подобие функции "ЕСЛИ":
если в ячейке есть, какое-то значение, то необходимо, чтобы оно заменилось на 1.

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

2003; 2007; 2010; 2013 RUS
Первый файл просто форматом - реально содержимое ячейки не меняется, единица только отображается.
Второй файл макросом.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    For i = 1 To Target.Cells.Count
        If Len(Target(i)) Then Target(i) = 1
    Next i
    Application.EnableEvents = 1
End Sub
[/vba]
К сообщению приложен файл: 7474747.xlsx (10.0 Kb) · 897897987.xlsm (13.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПервый файл просто форматом - реально содержимое ячейки не меняется, единица только отображается.
Второй файл макросом.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = 0
    For i = 1 To Target.Cells.Count
        If Len(Target(i)) Then Target(i) = 1
    Next i
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 29.12.2015 в 11:36
китин Дата: Вторник, 29.12.2015, 11:38 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
АВам же написали
выделить диапазон (если менять не на всем листе)
ctrl+h
найти *
заменить на 1
заменить все

и всё!!!!!
К сообщению приложен файл: 1111111.xlsx (8.5 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Вторник, 29.12.2015, 11:38
 
Ответить
СообщениеАВам же написали
выделить диапазон (если менять не на всем листе)
ctrl+h
найти *
заменить на 1
заменить все

и всё!!!!!

Автор - китин
Дата добавления - 29.12.2015 в 11:38
biomirror Дата: Вторник, 29.12.2015, 13:33 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

_Boroda_, спасибо за ответ. Только у меня появилось несколько вопросов:
1. Как именно с помощью условного форматирования добиться такого же результата?
2. Макросами я пользоваться не умею( Но хотел бы узнать, как этим способом (с помощью макросов) настроить нужный диапазон ячеек?

китин, ты и Nic70y правы. Просто я подумал, что "найти *" - означает найти все значения, которые стоят в ячейках. Только сейчас понял, что это значит найти "*" (звездочку). Единственное значок ' не заменяется при этом на 1. Хороший способ для одноразового использования. Но мне нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_
 
Ответить
Сообщение_Boroda_, спасибо за ответ. Только у меня появилось несколько вопросов:
1. Как именно с помощью условного форматирования добиться такого же результата?
2. Макросами я пользоваться не умею( Но хотел бы узнать, как этим способом (с помощью макросов) настроить нужный диапазон ячеек?

китин, ты и Nic70y правы. Просто я подумал, что "найти *" - означает найти все значения, которые стоят в ячейках. Только сейчас понял, что это значит найти "*" (звездочку). Единственное значок ' не заменяется при этом на 1. Хороший способ для одноразового использования. Но мне нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_

Автор - biomirror
Дата добавления - 29.12.2015 в 13:33
китин Дата: Вторник, 29.12.2015, 13:46 | Сообщение № 7
Группа: Модераторы
Ранг: Экселист
Сообщений: 7015
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
"*" это и есть найти любое значение.Вы же писали
чтобы любой символ в определенных диапазонах ячеек заменялся на 1 (единицу

.Найти "*" и значит, что найти любые символы на листе и заменить их на 1
у _Boroda_, не условное форматирование а формат ячеек.ПКМ на ячейке формат ячеек-все форматы


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение"*" это и есть найти любое значение.Вы же писали
чтобы любой символ в определенных диапазонах ячеек заменялся на 1 (единицу

.Найти "*" и значит, что найти любые символы на листе и заменить их на 1
у _Boroda_, не условное форматирование а формат ячеек.ПКМ на ячейке формат ячеек-все форматы

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

2003; 2007; 2010; 2013 RUS
Как именно с помощью условного форматирования

просто форматом
Формат и условное форматирование - разные вещи. Можно и УФ, но форматом проще.

Макросами я пользоваться не умею( Но хотел бы узнать, как этим способом

ПКМ на ярлычке моего листа - Исходный код - копируете его - ПКМ на ярлычке Вашего листа - вставляете.
Только представленный выше макрос работает вообще на весь лист. Для диапазона вот так должно быть
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d_ As Range
    Set d_ = Intersect(Range("A1:G20"), Target)
    Application.EnableEvents = 0
    For i = 1 To d_.Cells.Count
        If Len(d_(i)) Then d_(i) = 1
    Next i
    Application.EnableEvents = 1
End Sub
[/vba]
К сообщению приложен файл: 897897987_1.xlsm (14.2 Kb)


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

просто форматом
Формат и условное форматирование - разные вещи. Можно и УФ, но форматом проще.

Макросами я пользоваться не умею( Но хотел бы узнать, как этим способом

ПКМ на ярлычке моего листа - Исходный код - копируете его - ПКМ на ярлычке Вашего листа - вставляете.
Только представленный выше макрос работает вообще на весь лист. Для диапазона вот так должно быть
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d_ As Range
    Set d_ = Intersect(Range("A1:G20"), Target)
    Application.EnableEvents = 0
    For i = 1 To d_.Cells.Count
        If Len(d_(i)) Then d_(i) = 1
    Next i
    Application.EnableEvents = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 29.12.2015 в 13:46
biomirror Дата: Вторник, 29.12.2015, 15:26 | Сообщение № 9
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

_Boroda_, а как с помощью "формата" сделать так, как сделали вы
_Boroda_, выполнил, что вы написали, изменил диапазон "A1:G20" на "H8:I10", сохранил - вылетает ошибка


Сообщение отредактировал biomirror - Вторник, 29.12.2015, 15:27
 
Ответить
Сообщение_Boroda_, а как с помощью "формата" сделать так, как сделали вы
_Boroda_, выполнил, что вы написали, изменил диапазон "A1:G20" на "H8:I10", сохранил - вылетает ошибка

Автор - biomirror
Дата добавления - 29.12.2015 в 15:26
_Boroda_ Дата: Вторник, 29.12.2015, 15:30 | Сообщение № 10
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
как с помощью "формата" сделать так,

Вам Игорь уже написал
ПКМ на ячейке формат ячеек-все форматы
Посмотрите, какой формат ячеек у меня в файле и сделайте у себя такой. Или просто скопируйте у меня ячейку и вставьте у себя Спецвставка - формат.
выполнил, что вы написали, изменил диапазон "A1:G20" на "H8:I10", сохранил - вылетает ошибка
Покажите в файле


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

Вам Игорь уже написал
ПКМ на ячейке формат ячеек-все форматы
Посмотрите, какой формат ячеек у меня в файле и сделайте у себя такой. Или просто скопируйте у меня ячейку и вставьте у себя Спецвставка - формат.
выполнил, что вы написали, изменил диапазон "A1:G20" на "H8:I10", сохранил - вылетает ошибка
Покажите в файле

Автор - _Boroda_
Дата добавления - 29.12.2015 в 15:30
biomirror Дата: Вторник, 29.12.2015, 16:12 | Сообщение № 11
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

Действительно, не заметил сообщение № 7. Все понял, даже понял как заменять все символы на "Зю":))

Еще раз попробовал макрос - все нормально, видно где-то допустил ошибку. Только мне надо, чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках.
 
Ответить
СообщениеДействительно, не заметил сообщение № 7. Все понял, даже понял как заменять все символы на "Зю":))

Еще раз попробовал макрос - все нормально, видно где-то допустил ошибку. Только мне надо, чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках.

Автор - biomirror
Дата добавления - 29.12.2015 в 16:12
Manyasha Дата: Вторник, 29.12.2015, 16:36 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_

чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках

Вы уж определитесь...
[vba]
Код
'Добавила
'Приактивации листа все в диапазоне A1:G20 заменяем на 1
Private Sub Worksheet_Activate()
    Range("A1:G20").Replace "*", "1"
End Sub
'Макрос Александра
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d_ As Range
    Set d_ = Intersect(Range("A1:G20"), Target)
    Application.EnableEvents = 0
    If Not d_ Is Nothing Then 'Добавила
        For i = 1 To d_.Cells.Count
            If Len(d_(i)) Then d_(i) = 1
        Next i
    End If
    Application.EnableEvents = 1
End Sub
[/vba]
Если не угадала, то поподробнее объясните, что нужно.


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_

чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках

Вы уж определитесь...
[vba]
Код
'Добавила
'Приактивации листа все в диапазоне A1:G20 заменяем на 1
Private Sub Worksheet_Activate()
    Range("A1:G20").Replace "*", "1"
End Sub
'Макрос Александра
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim d_ As Range
    Set d_ = Intersect(Range("A1:G20"), Target)
    Application.EnableEvents = 0
    If Not d_ Is Nothing Then 'Добавила
        For i = 1 To d_.Cells.Count
            If Len(d_(i)) Then d_(i) = 1
        Next i
    End If
    Application.EnableEvents = 1
End Sub
[/vba]
Если не угадала, то поподробнее объясните, что нужно.

Автор - Manyasha
Дата добавления - 29.12.2015 в 16:36
biomirror Дата: Среда, 30.12.2015, 07:42 | Сообщение № 13
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_


чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках.


Пожалуй необходимо объединить эти две мои фразы и немного исправить:
нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda, только чтобы на 1 заменялись символы, уже находящиеся в ячейках.

Manyasha, почему-то никаких изменений, по сравнению с предыдущим макросом я не замечаю.
По другому попробую объяснить:
В диапазоне A1:G20 уже есть различные значения: необходимо, чтобы они автоматически заменялись на 1.

И мне на всякий случай, подскажите, пожалуйста, что нужно изменить в макросе, чтобы значения менялись не на 1, а на другое число (или символ) - какая строка или число за это отвечают))
И как можно добавить еще диапазонов к уже существующему.
 
Ответить
Сообщение
нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda_


чтобы на 1 заменялись не вновь вводимые символы, а уже находящиеся в ячейках.


Пожалуй необходимо объединить эти две мои фразы и немного исправить:
нужно, чтобы значения в ячейках менялись автоматически, как в способе, который указал _Boroda, только чтобы на 1 заменялись символы, уже находящиеся в ячейках.

Manyasha, почему-то никаких изменений, по сравнению с предыдущим макросом я не замечаю.
По другому попробую объяснить:
В диапазоне A1:G20 уже есть различные значения: необходимо, чтобы они автоматически заменялись на 1.

И мне на всякий случай, подскажите, пожалуйста, что нужно изменить в макросе, чтобы значения менялись не на 1, а на другое число (или символ) - какая строка или число за это отвечают))
И как можно добавить еще диапазонов к уже существующему.

Автор - biomirror
Дата добавления - 30.12.2015 в 07:42
biomirror Дата: Среда, 30.12.2015, 09:12 | Сообщение № 14
Группа: Проверенные
Ранг: Участник
Сообщений: 95
Репутация: 0 ±
Замечаний: 0% ±

После небольших раздумий решил, что этот способ мне наиболее подходит. Он есть решение:
1. Запускаем макрорекордер (Файл - Параметры - Настроить Ленту - ставим галочку на против вкладки разработчик)
2. Вкладка Разработчик - Запись макроса.
2. Выделяем нужные диапазоны.
3. Ctrl+H , Найти - * , Заменить - 1, ОК
4. Останавливаем запись макроса.

5. Для удобства создаем кнопку с макросом: http://www.excel-vba.ru/chto-um....a-liste


Сообщение отредактировал biomirror - Среда, 30.12.2015, 09:20
 
Ответить
СообщениеПосле небольших раздумий решил, что этот способ мне наиболее подходит. Он есть решение:
1. Запускаем макрорекордер (Файл - Параметры - Настроить Ленту - ставим галочку на против вкладки разработчик)
2. Вкладка Разработчик - Запись макроса.
2. Выделяем нужные диапазоны.
3. Ctrl+H , Найти - * , Заменить - 1, ОК
4. Останавливаем запись макроса.

5. Для удобства создаем кнопку с макросом: http://www.excel-vba.ru/chto-um....a-liste

Автор - biomirror
Дата добавления - 30.12.2015 в 09:12
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Сделать так, чтобы любой символ в ячейке заменялся на 1 (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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