В этой теме нашёл очень хороший макрос. https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=90027 На базе этого или с использованием чего-то другого хочу реализовать возможность использования подбора арифметических действий как выше указанном примере, но используя разные знаки во всех их возможных комбинациях. Максимум что у меня получилось это - выражение к примеру (4,200,134,333). Но, это просто - в место 4-рок вставил другие значения.
Как автоматизировать этот процесс - не знаю. Помогите пожалуйста!
wholesander написал: На базе этого или с использованием чего-то другого хочу реализовать возможность использования подбора арифметических действий как выше указанном примере, но используя разные знаки во всех их возможных комбинациях.
Ну так чем не устраивает данный пример? Там как раз используются разные знаки + - / * во всех возможных комбинациях на примере 5 цифр
Он меня устраивает, но вариантов из 5-ти цифр - если я не ошибаюсь 1*2*3*4*5=120 Писать 120 макросов - это, очень трудоёмко. Может можно этот процесс как-то облегчить? Спасибо.
wholesander написал: хочу реализовать возможность использования подбора арифметических действий как выше указанном примере, но используя разные знаки во всех их возможных комбинациях
wholesander, опишите задачу подробнее, что нужно сделать?
MCH написал: пишите задачу подробнее, что нужно сделать?
Михаил, вполне простая задача. Есть массив чисел. В первом приближении. Нужно расставить между ними все варианты четырёх арифметических операций и как формулу вывести текущую комбинацию чисел и операций в очередную ячейку на листе.
Цитата
wholesander написал: Писать 120 макросов - это, очень трудоёмко.
Можно поинтересоваться - как вы пришли к такому выводу?
Я тоже попробую... Вдруг стану телепатом и буду деньги потом на бирже лопатой грести
Скрытый текст
Код
Public Sub Test()
Const Numbers = "123 224 35 41 57 64 719 901 1013"
Dim items() As String, signs() As Long, k As Long
Dim i As Long, ops() As String, vLast As Long, sFormula As String
items = Split(Numbers, " ")
ReDim ops(0 To 3)
ops(0) = "+": ops(1) = "-": ops(2) = "*": ops(3) = "/"
ReDim signs(LBound(items) To UBound(items) - 1)
vLast = 4& ^ (UBound(items) - LBound(items)) - 1
For i = 1 To vLast
sFormula = "=" & items(0)
For k = LBound(signs) To UBound(signs)
sFormula = sFormula & ops(signs(k)) & items(k + 1)
Next
ActiveSheet.Cells(i + 1, 1).Formula = sFormula
NextPositions signs
Next
End Sub
Private Sub NextPositions(ByRef signs() As Long)
Dim first As Long, i As Long
first = LBound(signs)
signs(first) = signs(first) + 1
i = first
Do While signs(i) > 3
signs(i) = 0
i = i + 1
signs(i) = signs(i) + 1
Loop
End Sub
Михаил, день добрый! Задача состоит в нахождении возможной закономерности в природе. Как-то так, я ещё сам толком не знаю что ищу, так, что-то кружится в голове, но пока собрать до кучи не получается. Я посмотрел ваши решения, сама идея по моему подходит но,- чу-чуть не то, так как вводимые цифры в основном десятки и сотни. Если я ввожу в ячейку А1 номера к примеру(103, 54, 308, 79), то у меня получается 103543.- совсем не то.
И по поводу скобок, не знаю ещё! Не могли бы вы разделить вводимые числа и может сделать два варианта ( со скобками и без)
Андрей_26 написал: Остается только догадываться что хочет ТС. Попробую угадать, так?
Не сложно догадаться, у Вас почти получилось! Единственное - мне не хватает остальных 119 вариантов чисел. К примеру(1,2,3,4,5- 5,4,3,2,1- 2,1,3,4,5- 2,3,1,4,5) и так далее. Спасибо!