Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2014, 18:34   #1
Lolaska
Новичок
Джуниор
 
Регистрация: 05.10.2014
Сообщений: 1
По умолчанию Как сопоставить слова в всех вариантах

Есть у меня три столбца с ключевыми словами. Например:

Заказать / медведя / подруге
Купить / игрушку / любимой

Мне нужно сопоставить слова с столбцов в всех возможных вариантах. Например:

Заказать медведя подруге
Заказать медведя любимой
Заказать игрушку подруге
Заказать игрушку любимой
купить медведя подруге
купить медведя любимой
купить игрушку подруге
купить игрушку любимой

Как мне такое осуществить? Заранее огромное спасибо
Lolaska вне форума Ответить с цитированием
Старый 05.10.2014, 19:48   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

отмечаете диапазон с данными

выполняете из макрос PeReS (не подумайте ничего такого, это ПеРеСтановки)))
Код:
Sub PeReS()
  Dim rg As Range, n As Long, r As Long, v As Long, vs As String
  Set rg = Selection
  n = rg.Rows.Count
  For v = 0 To n ^ 3 - 1
    r = rg.Row + n + v:  vs = D2xz(v, 3): If Len(vs) < 3 Then vs = String(3 - Len(vs), "0") & vs
    For i = 0 To 2
      Cells(r, rg.Column + i) = rg.Cells(1 + Val(Mid(vs, i + 1, 1)), 1 + i)
    Next
  Next
End Sub



Function D2xz(ByVal d As Long, xz As Long) As String
  Dim r As Integer, s As String
  If d = 0 Then D2xz = "0":  Exit Function
  r = Int(Log(d + 0.001) / Log(xz))  'Для 64, 128 перевод в 2-ичную систему дало неожиданный результат: Log(128)/Log(2) = 7 - это
  'правильно, а Int(Log(128)/Log(2)) уже равно 6 и в старшем разряде получается "2"!!!, пришлось добавить нелогичный 0.001
  Do
    s = s & D2C(Int(d / xz ^ r))
    d = d - Int(d / xz ^ r) * xz ^ r
    r = r - 1
  Loop Until r = -1
  D2xz = s
End Function

Function D2C(i As Integer) As String
  D2C = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", i + 1, 1)
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос слова из всех ячеек столбца deserving83 Microsoft Office Excel 7 27.08.2013 22:09
Подстановка в разных частях слова символов в во всех строках столбца Swarika Помощь студентам 0 20.11.2012 23:42
Организовать поиск всех вхождений заданного слова в загруженном тексте s2dentishe Помощь студентам 0 21.11.2009 18:53
Как сопоставить ячейки hunter05 Microsoft Office Excel 2 05.04.2009 14:37
Как сопоставить 2 файла exel? yasya22 Microsoft Office Excel 2 22.04.2008 22:48