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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 10:21   #1
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию Вычисление результата двух формул для одной ячейки

Добрый день, уважаемые эксперты!
Честно 2 дня рылся на форумах, но не нашел варианта решения своего вопроса.
Задача у меня вот такая:
Есть код:
Код:
p = UserForm2.TextBox247.Text & "["

For Each c In Columns(174).SpecialCells(xlCellTypeConstants)

            With c.Offset(, -170).Resize(, 169)
            .Formula = "=IF(ISNA(INDEX(курсы!R20C5:R27C17,MATCH(RC3,курсы!R20C1:R27C1,0),MATCH(R10C,курсы!R32C5:R32C17,0))),1,INDEX(курсы!R20C5:R27C17,MATCH(RC3,курсы!R20C1:R27C1,0),MATCH(R10C,курсы!R32C5:R32C17,0)))"
            .FormulaArray = "=INDEX('" & p & c & "]" & c.Offset(, 2) & "'!R11C3:R1500C172,MATCH(RC[171],TRIM('" & p & c & "]" & c.Offset(, 2) & "'!R11C2:R1500C2),),)"
            End With

Next
Мне необходимо, грубо говоря, объединить (вставить) в одной ячейке две формулы, одна из которых записана на массивах (.FormulaArray по тексту кода), а вторая стандартно (.Formula по тексту). Точнее результат вычисления ".FormulaArray" поделить результат вычисления ".Formula". Они работают по отдельности, но вместе конечно нет.
Очень надеюсь что объяснил понятно).. Подскажите пожалуйста в каком направлении вобще можно пойти.
MaxxVer вне форума Ответить с цитированием
Старый 08.06.2015, 10:33   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

предлагаю двигаться в такую сторону:
1. показываете где и как размещены исходные данные
2. рассказываете, что хотите вычислить
а там, глядишь... и найдется формула, которой это можно сделать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.06.2015, 10:59   #3
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Исходные данные размещены в книгах (закрытых), формула массива вытягивает из них данные. p - это путь к папке где находятся книги, с - это названия листа в этой книге.
А обычная формула (.Formula) вытягивает данные из соседнего листа "Курсы".+
Где "RC3" - это искомое значение в столбце 3, R10C - искомое значение в строке 10.
Данные из закрытой книги надо поделить на курсы (из соседнего листа).
Проблема в том что из закрытой книги я беру данные с помощью формулы массива, а с соседнего листа обычной формулой (с относительными ссылками).
MaxxVer вне форума Ответить с цитированием
Старый 08.06.2015, 11:15   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Почему бы не использовать пару доп.столбцов? Ну или всё сразу макросом и делать - и быстрее вероятно будет.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 08.06.2015, 11:18   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ну и в чем проблема?

поделив массив данных на значение получаем новый массив, в котором такое же количестиво элементов как в исходном только каждый элемент есть результат деления.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.06.2015, 11:47   #6
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Проблема в том что не хватает знаний как это реализовать...) Может на любом простом примере подскажете? Мне в формуле нужно использовать относительные ссылки, а Resize + формула массива на сколько я понимаю это не позволяет.
А цикл по каждой ячейке не хочется делать, т.к. он будет очень долго работать.
Доп столбцы я не против использовать, но тоже не понимаю как это соединить воедино..
MaxxVer вне форума Ответить с цитированием
Старый 08.06.2015, 12:13   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

пример элементарный, только не знаю чем он Вам поможет
Вложения
Тип файла: rar ДелениеМассива.rar (5.9 Кб, 10 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.06.2015, 08:54   #8
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Постарался на вашем упрощенном примере (во вложении) уточнить свой вопрос. Посмотрите пожалуйста.
Вложения
Тип файла: zip ДелениеМассива.zip (11.1 Кб, 8 просмотров)
MaxxVer вне форума Ответить с цитированием
Старый 09.06.2015, 09:22   #9
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

И сам файл с источником данных еще прикладываю (его по умолчанию в папке C:\temp необходимо сохранить)
Вложения
Тип файла: zip Источник.zip (5.9 Кб, 9 просмотров)
MaxxVer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько условий для одной ячейки Ольга777 Microsoft Office Excel 18 15.05.2017 21:21
Макрос для подстановка искомого текста из одной ячейки в другую по столбцу tonpok666 Microsoft Office Excel 4 07.02.2013 09:33
написание формул для ячейки с множественными условиями Scfail Microsoft Office Excel 2 25.03.2012 01:24
Вычисление обьема по одной из трех формул Jaty Microsoft Office Excel 2 12.06.2010 14:35
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57