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

Вход

Регистрация

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

 

= Мир MS Excel/Замена точного совпадения в ячейке - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Замена точного совпадения в ячейке
skvozniak Дата: Среда, 31.05.2017, 01:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Есть столбец "А"
В нем ячейки в которых стоят цифры через запятую. (Пример: т-1,5,6,11,13,15,20,99)
Каждой цифре соответствует стоимость. (Пример 1=150руб., 5=100руб, 6=150руб, 11=50руб и т.д.)
Необходимо в ячейке заменить 1,5,6,11.... на стоимость (пример 150,100,150,50)
Затем я ее хочу сложить и получить итоговую цифру.
Проблема в том что при заменах "1" на 150, меняется значение "11" и получается стоимость 1150руб, а должно быть 50. И таких косячков много.
Как я могу заменить по точному совпадению "1" и "11" и т.п. вариации.
Разбиение на отдельные столбцы не предлагайте (причина на то есть)
 
Ответить
СообщениеЕсть столбец "А"
В нем ячейки в которых стоят цифры через запятую. (Пример: т-1,5,6,11,13,15,20,99)
Каждой цифре соответствует стоимость. (Пример 1=150руб., 5=100руб, 6=150руб, 11=50руб и т.д.)
Необходимо в ячейке заменить 1,5,6,11.... на стоимость (пример 150,100,150,50)
Затем я ее хочу сложить и получить итоговую цифру.
Проблема в том что при заменах "1" на 150, меняется значение "11" и получается стоимость 1150руб, а должно быть 50. И таких косячков много.
Как я могу заменить по точному совпадению "1" и "11" и т.п. вариации.
Разбиение на отдельные столбцы не предлагайте (причина на то есть)

Автор - skvozniak
Дата добавления - 31.05.2017 в 01:12
Che79 Дата: Среда, 31.05.2017, 01:30 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
skvozniak, и Вам здравствуйте. Чтобы быстрее получить точный ответ на свой вопрос, пожалуйста, прочтите Правила форума и приложите xls(x) файл-пример (до 100 кБ), в котором будет видно что есть и что нужно получить на выходе.


Делай нормально и будет нормально!
 
Ответить
Сообщениеskvozniak, и Вам здравствуйте. Чтобы быстрее получить точный ответ на свой вопрос, пожалуйста, прочтите Правила форума и приложите xls(x) файл-пример (до 100 кБ), в котором будет видно что есть и что нужно получить на выходе.

Автор - Che79
Дата добавления - 31.05.2017 в 01:30
buchlotnik Дата: Среда, 31.05.2017, 01:35 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
И вам здравствуйте.
Изучение правил форума позволит понять - нужен файл-пример
[p.s.]
Цитата
получить итоговую цифру
будем складывать как нумерологи до одной цифры или всё же ЧИСЛО требуется?
Цитата
причина на то есть
ждём файл с демонстрацией
 
Ответить
СообщениеИ вам здравствуйте.
Изучение правил форума позволит понять - нужен файл-пример
[p.s.]
Цитата
получить итоговую цифру
будем складывать как нумерологи до одной цифры или всё же ЧИСЛО требуется?
Цитата
причина на то есть
ждём файл с демонстрацией

Автор - buchlotnik
Дата добавления - 31.05.2017 в 01:35
skvozniak Дата: Среда, 31.05.2017, 09:35 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте.
Выкладываю файл.
Прошу обратить внимание на цифры 1 и 11 , 2 и 22.
Если замена не точная, то получается чуча )))
К сообщению приложен файл: 8616791.xls (32.5 Kb)


Сообщение отредактировал skvozniak - Среда, 31.05.2017, 09:36
 
Ответить
СообщениеЗдравствуйте.
Выкладываю файл.
Прошу обратить внимание на цифры 1 и 11 , 2 и 22.
Если замена не точная, то получается чуча )))

Автор - skvozniak
Дата добавления - 31.05.2017 в 09:35
vikttur Дата: Среда, 31.05.2017, 10:11 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

И как раз на ...27*1 - и т.д.
*1 - ошибка или такой вариант присутствует? Что еще может быть в конце? В начале всегда "т-"?
 
Ответить
СообщениеИ как раз на ...27*1 - и т.д.
*1 - ошибка или такой вариант присутствует? Что еще может быть в конце? В начале всегда "т-"?

Автор - vikttur
Дата добавления - 31.05.2017 в 10:11
buchlotnik Дата: Среда, 31.05.2017, 10:13 | Сообщение № 6
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Навскидку вот такая UDF [vba]
Код
Function change(s$, chto As Range, nachto As Range)
    Dim t$, m, i%
    t = Replace(s, "т-", "")
    m = Split(t, ",")
    For i = 0 To UBound(m)
        m(i) = Application.WorksheetFunction.Lookup(CInt(m(i)), chto, nachto)
    Next i
    t = Join(m, ",")
    t = "т-" & t
    change = t
End Function
[/vba]
А вот про вот этого зверя
Цитата
т-1,2,3,5,6,7,8,11,12,15,27*1
не понял - и т.д. должно получиться?
К сообщению приложен файл: 2999881.xls (50.0 Kb)


Сообщение отредактировал buchlotnik - Среда, 31.05.2017, 10:13
 
Ответить
СообщениеНавскидку вот такая UDF [vba]
Код
Function change(s$, chto As Range, nachto As Range)
    Dim t$, m, i%
    t = Replace(s, "т-", "")
    m = Split(t, ",")
    For i = 0 To UBound(m)
        m(i) = Application.WorksheetFunction.Lookup(CInt(m(i)), chto, nachto)
    Next i
    t = Join(m, ",")
    t = "т-" & t
    change = t
End Function
[/vba]
А вот про вот этого зверя
Цитата
т-1,2,3,5,6,7,8,11,12,15,27*1
не понял - и т.д. должно получиться?

Автор - buchlotnik
Дата добавления - 31.05.2017 в 10:13
sboy Дата: Среда, 31.05.2017, 10:19 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Вариант кнопкой
[vba]
Код
Sub zamena()
    For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        s = Split(Replace(Cells(x, 1), "т-", ""), ",")
        On Error Resume Next
        For y = 0 To UBound(s)
            zam = Range("g:g").Find(s(y)).Offset(0, 2)
            stroka = stroka & zam
            If y < UBound(s) Then stroka = stroka & ","
        Next y
        Cells(x, 3) = "т-" & stroka
        stroka = ""
    Next x
End Sub
[/vba]
К сообщению приложен файл: 6324044.xls (51.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Вариант кнопкой
[vba]
Код
Sub zamena()
    For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        s = Split(Replace(Cells(x, 1), "т-", ""), ",")
        On Error Resume Next
        For y = 0 To UBound(s)
            zam = Range("g:g").Find(s(y)).Offset(0, 2)
            stroka = stroka & zam
            If y < UBound(s) Then stroka = stroka & ","
        Next y
        Cells(x, 3) = "т-" & stroka
        stroka = ""
    Next x
End Sub
[/vba]

Автор - sboy
Дата добавления - 31.05.2017 в 10:19
vikttur Дата: Среда, 31.05.2017, 10:44 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Мой вариант (пока что *1 так и считается - значение*1, т.е игнорируется)
[vba]
Код
Function SubValue(r1 As Range, r2 As Range)
Dim aSpl
Dim sStr As String
Dim lRws As Long, i As Long, j As Long
    lRws = r2.Rows.Count
    aSpl = Split(Mid$(r1.Value, 3), ",")
    sStr = "т-,"
    If UBound(aSpl) = -1 Then SubValue = "": Exit Function
    
    For j = 0 To UBound(aSpl)
        If aSpl(j) <> Empty Then
            For i = 1 To lRws
                If aSpl(j) = "" & r2(i, 1).Value Then
                    sStr = sStr & "," & r2(i, 3).Value: Exit For
                End If
            Next i
        End If
    Next j

    SubValue = Replace(sStr, ",,", "")
End Function
[/vba]
К сообщению приложен файл: 4362371.xls (47.0 Kb)


Сообщение отредактировал vikttur - Среда, 31.05.2017, 10:44
 
Ответить
СообщениеМой вариант (пока что *1 так и считается - значение*1, т.е игнорируется)
[vba]
Код
Function SubValue(r1 As Range, r2 As Range)
Dim aSpl
Dim sStr As String
Dim lRws As Long, i As Long, j As Long
    lRws = r2.Rows.Count
    aSpl = Split(Mid$(r1.Value, 3), ",")
    sStr = "т-,"
    If UBound(aSpl) = -1 Then SubValue = "": Exit Function
    
    For j = 0 To UBound(aSpl)
        If aSpl(j) <> Empty Then
            For i = 1 To lRws
                If aSpl(j) = "" & r2(i, 1).Value Then
                    sStr = sStr & "," & r2(i, 3).Value: Exit For
                End If
            Next i
        End If
    Next j

    SubValue = Replace(sStr, ",,", "")
End Function
[/vba]

Автор - vikttur
Дата добавления - 31.05.2017 в 10:44
skvozniak Дата: Среда, 31.05.2017, 10:56 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
У 27*1 есть значение =600, 1 это коэффициент. Он может быть и 0,5 и 2 и 3. Всегда начинается с т-
 
Ответить
СообщениеУ 27*1 есть значение =600, 1 это коэффициент. Он может быть и 0,5 и 2 и 3. Всегда начинается с т-

Автор - skvozniak
Дата добавления - 31.05.2017 в 10:56
sboy Дата: Среда, 31.05.2017, 11:12 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
1 это коэффициент

тогда так[vba]
Код
Sub zamena()
    For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        s = Split(Replace(Cells(x, 1), "т-", ""), ",")
        On Error Resume Next
        For y = 0 To UBound(s)
            c = Evaluate(s(y))
            zam = Range("g:g").Find(c).Offset(0, 2)
            stroka = stroka & zam
            If y < UBound(s) Then stroka = stroka & ","
        Next y
        Cells(x, 3) = "т-" & stroka
        stroka = ""
    Next x
End Sub
[/vba]
К сообщению приложен файл: 6909969.xls (52.0 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
1 это коэффициент

тогда так[vba]
Код
Sub zamena()
    For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        s = Split(Replace(Cells(x, 1), "т-", ""), ",")
        On Error Resume Next
        For y = 0 To UBound(s)
            c = Evaluate(s(y))
            zam = Range("g:g").Find(c).Offset(0, 2)
            stroka = stroka & zam
            If y < UBound(s) Then stroka = stroka & ","
        Next y
        Cells(x, 3) = "т-" & stroka
        stroka = ""
    Next x
End Sub
[/vba]

Автор - sboy
Дата добавления - 31.05.2017 в 11:12
vikttur Дата: Среда, 31.05.2017, 11:16 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата
1 это коэффициент.

Значение нужно изменить? Т.е. для примера
27*1 = 600*1 = 600
27*0,5 = 600*0,5 = 300

Вопрос2. Коэффициент может быть у любого значения в тексте?
Вопрос3. Если коэффициент 0,5 (с запятой), то как различать запятую как разделитель текста и запятую как часть коэффициента?

Не тяните резину, покажите пример с реальными данными


Сообщение отредактировал vikttur - Среда, 31.05.2017, 11:46
 
Ответить
Сообщение
Цитата
1 это коэффициент.

Значение нужно изменить? Т.е. для примера
27*1 = 600*1 = 600
27*0,5 = 600*0,5 = 300

Вопрос2. Коэффициент может быть у любого значения в тексте?
Вопрос3. Если коэффициент 0,5 (с запятой), то как различать запятую как разделитель текста и запятую как часть коэффициента?

Не тяните резину, покажите пример с реальными данными

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

Excel 2007
vikttur,
Значение изменить нужно.
Коэффициент только у значения 27 у других его нет они постоянные.
Коэффициент с запятой. а вот как различить запятую я не знаю к сожалению. (может как-то использовать то, что после 27 стоит знак умножения "*")
Хотя можно же просто заменить 27*1 на 600, а 27*0,5 на 300 и т.д.


Сообщение отредактировал skvozniak - Среда, 31.05.2017, 12:16
 
Ответить
Сообщениеvikttur,
Значение изменить нужно.
Коэффициент только у значения 27 у других его нет они постоянные.
Коэффициент с запятой. а вот как различить запятую я не знаю к сожалению. (может как-то использовать то, что после 27 стоит знак умножения "*")
Хотя можно же просто заменить 27*1 на 600, а 27*0,5 на 300 и т.д.

Автор - skvozniak
Дата добавления - 31.05.2017 в 12:15
sboy Дата: Среда, 31.05.2017, 12:31 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
skvozniak, коэф меньше единицы бывает только 0,5? или может быть 0,1...0,9?


Яндекс: 410016850021169
 
Ответить
Сообщениеskvozniak, коэф меньше единицы бывает только 0,5? или может быть 0,1...0,9?

Автор - sboy
Дата добавления - 31.05.2017 в 12:31
buchlotnik Дата: Среда, 31.05.2017, 12:47 | Сообщение № 14
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
можно же просто заменить 27*1 на 600, а 27*0,5 на 300 и т.д.
опять и т.д.? Дайте уже нормальный пример с вариантами
 
Ответить
Сообщение
Цитата
можно же просто заменить 27*1 на 600, а 27*0,5 на 300 и т.д.
опять и т.д.? Дайте уже нормальный пример с вариантами

Автор - buchlotnik
Дата добавления - 31.05.2017 в 12:47
skvozniak Дата: Среда, 31.05.2017, 13:21 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,
Пока коэффициенты 0,5 / 1 / 1,5 / 2 но со временем будут с шагом 0,25, т.е. 0,25 / 0,5 / 0,75 /1 и т.д. до 3
Если возможно это учесть сразу, то буду благодарен.
 
Ответить
Сообщениеsboy,
Пока коэффициенты 0,5 / 1 / 1,5 / 2 но со временем будут с шагом 0,25, т.е. 0,25 / 0,5 / 0,75 /1 и т.д. до 3
Если возможно это учесть сразу, то буду благодарен.

Автор - skvozniak
Дата добавления - 31.05.2017 в 13:21
vikttur Дата: Среда, 31.05.2017, 14:09 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Цитата
Коэффициент только у значения 27 у других его нет они постоянные.

Да Вы опишете нормально задачу или придется клещами орудовать? :)
27 только в конце или может стоять в любом месте текста?
Только это число такое уникальное? В таком случае не стоит огород городить. Добавить в таблицу десяток сообветствий значениям 27*1, 27*0,25... легче, чем усложнять код. Не нужно выдумывать обходы числа с коэффициентами
Еще проще, если разделитель у коэффициетов будет точка: 27*0.25


Сообщение отредактировал vikttur - Среда, 31.05.2017, 14:13
 
Ответить
Сообщение
Цитата
Коэффициент только у значения 27 у других его нет они постоянные.

Да Вы опишете нормально задачу или придется клещами орудовать? :)
27 только в конце или может стоять в любом месте текста?
Только это число такое уникальное? В таком случае не стоит огород городить. Добавить в таблицу десяток сообветствий значениям 27*1, 27*0,25... легче, чем усложнять код. Не нужно выдумывать обходы числа с коэффициентами
Еще проще, если разделитель у коэффициетов будет точка: 27*0.25

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

Excel 2010
skvozniak, 27 это ведь не обязательно последний аргумент...
может быть такая запись т-10,27*1,5,15 ?
как тут определить коэф 1 или 1,5?


Яндекс: 410016850021169
 
Ответить
Сообщениеskvozniak, 27 это ведь не обязательно последний аргумент...
может быть такая запись т-10,27*1,5,15 ?
как тут определить коэф 1 или 1,5?

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

Excel 2007
sboy,
Вот полный пример. Во вложении.
Задача:
Цифры это виды работ. У каждой работы своя цена.
В ячейке попадаются также слова "гарантия" и цены в скобках - это нужно убрать и ставить только виды работ.
В итоге я хочу получить стоимости каждой работы с разделителями "+" чтоб потом их сложить.
p/s 27*1 обычно в конце и таких штук как 27*0,5,5 - нет и быть не может.
К сообщению приложен файл: -2.xls (51.0 Kb)


Сообщение отредактировал skvozniak - Среда, 31.05.2017, 15:47
 
Ответить
Сообщениеsboy,
Вот полный пример. Во вложении.
Задача:
Цифры это виды работ. У каждой работы своя цена.
В ячейке попадаются также слова "гарантия" и цены в скобках - это нужно убрать и ставить только виды работ.
В итоге я хочу получить стоимости каждой работы с разделителями "+" чтоб потом их сложить.
p/s 27*1 обычно в конце и таких штук как 27*0,5,5 - нет и быть не может.

Автор - skvozniak
Дата добавления - 31.05.2017 в 15:46
buchlotnik Дата: Среда, 31.05.2017, 15:52 | Сообщение № 19
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
а почему т-11,25,28,29(2200р.)32 должно получиться 0?
сколько реально табличек? (т-, м- и т.д.?)
как интерпретировать СКАУТ 900
Кроме 27 умножение только с 4.9 возможно или вариант опять неполный?


Сообщение отредактировал buchlotnik - Среда, 31.05.2017, 16:03
 
Ответить
Сообщениеа почему т-11,25,28,29(2200р.)32 должно получиться 0?
сколько реально табличек? (т-, м- и т.д.?)
как интерпретировать СКАУТ 900
Кроме 27 умножение только с 4.9 возможно или вариант опять неполный?

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

Excel 2007
buchlotnik,
Только т-, и м-.
Все что начинается не с т- и м- необходимо делать 0.
Только с 27 и с 4.9 вариант полный.


Сообщение отредактировал skvozniak - Среда, 31.05.2017, 16:12
 
Ответить
Сообщениеbuchlotnik,
Только т-, и м-.
Все что начинается не с т- и м- необходимо делать 0.
Только с 27 и с 4.9 вариант полный.

Автор - skvozniak
Дата добавления - 31.05.2017 в 16:11
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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