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

Вход

Регистрация

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

 

= Мир MS Excel/Поменять местами СловоОдин_СловоДва - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поменять местами СловоОдин_СловоДва (Формулы/Formulas)
Поменять местами СловоОдин_СловоДва
stalber Дата: Среда, 29.08.2018, 16:12 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 370
Репутация: 7 ±
Замечаний: 40% ±

Excel 2007
Добрый день.

Необходима формула которая смогла бы поменять местами СловоОдин_СловоДва нужно получить СловоДва_СловоОдин перегородкой ориентиром служит нижнее подчёркивание.
К сообщению приложен файл: _29082018.xlsx (10.4 Kb)


Сообщение отредактировал awaddwaawddw - Среда, 29.08.2018, 16:12
 
Ответить
СообщениеДобрый день.

Необходима формула которая смогла бы поменять местами СловоОдин_СловоДва нужно получить СловоДва_СловоОдин перегородкой ориентиром служит нижнее подчёркивание.

Автор - stalber
Дата добавления - 29.08.2018 в 16:12
_Boroda_ Дата: Среда, 29.08.2018, 16:23 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=ПСТР(F5&"_"&F5;ПОИСК("_";F5)+1;ДЛСТР(F5))

Или классика
Код
=ПРАВБ(F5;ДЛСТР(F5)-ПОИСК("_";F5))&"_"&ЛЕВБ(F5;ПОИСК("_";F5)-1)

Код
=ПСТР(F5;ПОИСК("_";F5)+1;99)&"_"&ЛЕВБ(F5;ПОИСК("_";F5)-1)
К сообщению приложен файл: _29082018_1.xlsx (11.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=ПСТР(F5&"_"&F5;ПОИСК("_";F5)+1;ДЛСТР(F5))

Или классика
Код
=ПРАВБ(F5;ДЛСТР(F5)-ПОИСК("_";F5))&"_"&ЛЕВБ(F5;ПОИСК("_";F5)-1)

Код
=ПСТР(F5;ПОИСК("_";F5)+1;99)&"_"&ЛЕВБ(F5;ПОИСК("_";F5)-1)

Автор - _Boroda_
Дата добавления - 29.08.2018 в 16:23
iMrTidy Дата: Среда, 29.08.2018, 16:28 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Репутация: 14 ±
Замечаний: 0% ±

NO
awaddwaawddw,

Код
=MID(F5;FIND("_";F5)+1;LEN(F5))&"_"&LEFT(F5;FIND("_";F5)-1)
К сообщению приложен файл: 5776770.xlsx (11.3 Kb)


Вышенаписанное мной не является истиной, но лишь моя точка зрения, которая скорее всего ошибочна.

Сообщение отредактировал iMrTidy - Среда, 29.08.2018, 16:40
 
Ответить
Сообщениеawaddwaawddw,

Код
=MID(F5;FIND("_";F5)+1;LEN(F5))&"_"&LEFT(F5;FIND("_";F5)-1)

Автор - iMrTidy
Дата добавления - 29.08.2018 в 16:28
StoTisteg Дата: Среда, 29.08.2018, 16:33 | Сообщение № 4
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
UDF:[vba]
Код
Function ПЕРЕСТСЛОВА(СЛОВО As String) As String

   Dim Word1 As String, Word2 As String
   Dim Sep As Integer
   
   Sep = InStr(1, СЛОВО, "_", vbTextCompare)
   If Sep > 0 Then
      Word1 = Left(СЛОВО, Sep - 1)
      Word2 = Right(СЛОВО, Len(СЛОВО) - Sep)
      ПЕРЕСТСЛОВА = Word2 & "_" & Word1
      Else: ПЕРЕСТСЛОВА = СЛОВО
   End If

End Function
[/vba]Формулой тоже можно, но я в них не силён, мне проще UDF за пять минут накодить, чем формулу полчаса тестить :)
К сообщению приложен файл: 7357435.xlsm (16.7 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTisteg - Среда, 29.08.2018, 16:35
 
Ответить
СообщениеUDF:[vba]
Код
Function ПЕРЕСТСЛОВА(СЛОВО As String) As String

   Dim Word1 As String, Word2 As String
   Dim Sep As Integer
   
   Sep = InStr(1, СЛОВО, "_", vbTextCompare)
   If Sep > 0 Then
      Word1 = Left(СЛОВО, Sep - 1)
      Word2 = Right(СЛОВО, Len(СЛОВО) - Sep)
      ПЕРЕСТСЛОВА = Word2 & "_" & Word1
      Else: ПЕРЕСТСЛОВА = СЛОВО
   End If

End Function
[/vba]Формулой тоже можно, но я в них не силён, мне проще UDF за пять минут накодить, чем формулу полчаса тестить :)

Автор - StoTisteg
Дата добавления - 29.08.2018 в 16:33
StoTisteg Дата: Среда, 29.08.2018, 16:41 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
С произвольным разделителем:[vba]
Код
Function ПЕРЕСТСЛОВА(ByVal СЛОВО As String, Optional ByVal РАЗДЕЛИТЕЛЬ As String = "_") As String

   Dim Word1 As String, Word2 As String
   Dim Sep As Integer
   
   Sep = InStr(1, СЛОВО, РАЗДЕЛИТЕЛЬ, vbTextCompare)
   If Sep > 0 Then
      Word1 = Left(СЛОВО, Sep - 1)
      Word2 = Right(СЛОВО, Len(СЛОВО) - Sep)
      ПЕРЕСТСЛОВА = Word2 & РАЗДЕЛИТЕЛЬ & Word1
      Else: ПЕРЕСТСЛОВА = СЛОВО
   End If

End Function
[/vba]
К сообщению приложен файл: 2787155.xlsm (17.0 Kb)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеС произвольным разделителем:[vba]
Код
Function ПЕРЕСТСЛОВА(ByVal СЛОВО As String, Optional ByVal РАЗДЕЛИТЕЛЬ As String = "_") As String

   Dim Word1 As String, Word2 As String
   Dim Sep As Integer
   
   Sep = InStr(1, СЛОВО, РАЗДЕЛИТЕЛЬ, vbTextCompare)
   If Sep > 0 Then
      Word1 = Left(СЛОВО, Sep - 1)
      Word2 = Right(СЛОВО, Len(СЛОВО) - Sep)
      ПЕРЕСТСЛОВА = Word2 & РАЗДЕЛИТЕЛЬ & Word1
      Else: ПЕРЕСТСЛОВА = СЛОВО
   End If

End Function
[/vba]

Автор - StoTisteg
Дата добавления - 29.08.2018 в 16:41
_Boroda_ Дата: Среда, 29.08.2018, 16:47 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
iMrTidy, если в решении одна или несколько формул (или не очень большой код макроса), то выкладывайте решение не только в файле, но и в теле поста. Не очень интересно качать файл для того, чтобы только одну формулу посмотреть.

Ну и если уж макросы пошли
[vba]
Код
Function Perest(ssyl)
    On Error Resume Next
    ar = Split(ssyl, "_")
    Perest = ssyl
    Perest = ar(1) & "_" & ar(0)
End Function
[/vba]

[vba]
Код
Function Perest(ssyl, Optional ByVal Razd = "_")
    On Error Resume Next
    ar = Split(ssyl, Razd)
    Perest = ssyl
    Perest = ar(1) & Razd & ar(0)
End Function
[/vba]
К сообщению приложен файл: _29082018_2.xlsm (16.7 Kb)


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

Ну и если уж макросы пошли
[vba]
Код
Function Perest(ssyl)
    On Error Resume Next
    ar = Split(ssyl, "_")
    Perest = ssyl
    Perest = ar(1) & "_" & ar(0)
End Function
[/vba]

[vba]
Код
Function Perest(ssyl, Optional ByVal Razd = "_")
    On Error Resume Next
    ar = Split(ssyl, Razd)
    Perest = ssyl
    Perest = ar(1) & Razd & ar(0)
End Function
[/vba]

Автор - _Boroda_
Дата добавления - 29.08.2018 в 16:47
sv2014 Дата: Суббота, 01.09.2018, 02:15 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
awaddwaawddw, еще вариант UDF в G5 и формула

[vba]
Код
Function aaa$(t$)
    With CreateObject("vbscript.regexp"): .Pattern = "([а-яё]+)_([а-яё]+)": .Global = True: .IgnoreCase = True
           aaa = .Replace(t, "$+_$1")
    End With
End Function
[/vba]

Код
=СЦЕПИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($F$5;"_";ПОВТОР(" ";100));100))&"_";СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ($F$5;"_";ПОВТОР(" ";100));100)))
К сообщению приложен файл: example_01_09_2.xls (33.0 Kb)


Сообщение отредактировал sv2014 - Суббота, 01.09.2018, 09:52
 
Ответить
Сообщениеawaddwaawddw, еще вариант UDF в G5 и формула

[vba]
Код
Function aaa$(t$)
    With CreateObject("vbscript.regexp"): .Pattern = "([а-яё]+)_([а-яё]+)": .Global = True: .IgnoreCase = True
           aaa = .Replace(t, "$+_$1")
    End With
End Function
[/vba]

Код
=СЦЕПИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ($F$5;"_";ПОВТОР(" ";100));100))&"_";СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ($F$5;"_";ПОВТОР(" ";100));100)))

Автор - sv2014
Дата добавления - 01.09.2018 в 02:15
китин Дата: Суббота, 01.09.2018, 12:01 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7014
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
sv2014, ну ведь не первый день на форуме..... формулу в тэги кто будет оформлять? исправил за вас


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


Сообщение отредактировал китин - Суббота, 01.09.2018, 12:11
 
Ответить
Сообщениеsv2014, ну ведь не первый день на форуме..... формулу в тэги кто будет оформлять? исправил за вас

Автор - китин
Дата добавления - 01.09.2018 в 12:01
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Поменять местами СловоОдин_СловоДва (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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