Страницы: 1
RSS
Удалить число из колонки "A" в случае если число равно числу в этой же строке в колонке "B"
 
Удалить число из колонки "A" в случае если число равно числу в этой же строке в колонке "B"
*Осложняется тем что:
1) В колонке "B" число уже в адекватном виде(без пробела, цифры идут в подряд)  а в колонке "А" число с пробелом внутри самого числа
2) В колонке "A" также число может быть указанно слитно к основной информации колонке
3) В основной информации колонки могут быть другие числа в том числе на конце строки

Пример данных:

Монако и Франция: еда, путешествия, ПМЖ, кредиты, яхты, недвижимость 1 448 781    1448781
Мир путешествий и активного отдыха24 781 621    781621
Туризм Путешествия Отдых Визы Отели Авиабилеты Travel Tourism Hotels Visas 709 414    709414
Красота и здоровье 626 141    626141
Красота и здоровье 249 469    249469
Мое здоровье 241 510    241510
МЕДИЦИНА ПРОРОКА I Medicine Of The Prophet (صلى الله عليه و سلم) 186 179    186179
Туризм Грузии 138 653    138653
Экзотические путешествия 125 564    125564
ЭТА УДИВИТЕЛЬНАЯ ПЛАНЕТА. ПУТЕШЕСТВИЯ ПО МИРУ. 125 303    125303
Вокруг света | туризм 113 205    113205


бился над этим очень долго - не получается - не хватает знаний и опыта..
Заранее Благодарю за помощь)
Изменено: zslava1 - 03.10.2016 06:28:20 (Добавил файл с примером)
 
Цитата
zslava1 написал: не хватает знаний и опыта
В поисках знаний идём сюда, особенно пункт 2.3 будет полезен.
 
Добавил файл с примером)
Помогите пожалуйста)
 
zslava1,Исходя из структуры данных в примере - вариант с доп столбцом.
 
На остальных данных почему то не работает
Прилагаю пример
 
zslava1,В доп столбец вместо прошлой формулы эту вставьте
Код
=ЕСЛИ(ДЛСТР(C2)=7;9;ЕСЛИ(ДЛСТР(C2)=6;7;ЕСЛИ(ДЛСТР(C2)=5;6;ЕСЛИ(ДЛСТР(C2)=4;5;ЕСЛИ(ДЛСТР(C2)<=3;ДЛСТР(C2);"")))))
 
добрый день,вариант макроса,кнопки test и повтор или используйте макрос test1,если нужны пробелы( второй приложенный файл)
Код
Sub test1()
    Dim z, i&, t$: z = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row).Value
  With CreateObject("VBScript.RegExp"):
   For i = 1 To UBound(z) : .Pattern = "(\d)(\s)": .Global = True
     If .test(z(i, 1)) Then z(i, 1) = .Replace(z(i, 1), "$1")
     .Pattern = z(i, 2)
      If .test(z(i, 1)) Then z(i, 1) = .Replace(z(i, 1), "")
   Next
  End With
  Range("A2").Resize(UBound(z), 2).Value = z
End Sub
Код
Sub test()
    Dim z, i&, t$: z = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row).Value
  With CreateObject("VBScript.RegExp"):
     For i = UBound(z) To 1 Step -1: .Pattern = " ": .Global = True
     If .test(z(i, 1)) Then z(i, 1) = .Replace(z(i, 1), "")
     .Pattern = z(i, 2)
      If .test(z(i, 1)) Then z(i, 1) = .Replace(z(i, 1), "")
     Next
  End With
  Range("A2").Resize(UBound(z), 2).Value = z
End Sub 
Изменено: sv2013 - 03.10.2016 10:22:18
Страницы: 1
Читают тему
Наверх