Ссылка на элемент vba массива в формуле
Mexo
Дата: Четверг, 09.11.2017, 06:02 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Здравствуйте! Подскажите как правильно написать формулу для массива "Result" чтобы она работала? [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X(1, 1)=4,"XXX",0)] End Sub
[/vba] Выдает "Error 2029" из-за этого "X(1, 1)" , а я понятия не имею как обозначить этот элемент в формуле. Заранее благодарю!
Здравствуйте! Подскажите как правильно написать формулу для массива "Result" чтобы она работала? [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X(1, 1)=4,"XXX",0)] End Sub
[/vba] Выдает "Error 2029" из-за этого "X(1, 1)" , а я понятия не имею как обозначить этот элемент в формуле. Заранее благодарю! Mexo
Ответить
Сообщение Здравствуйте! Подскажите как правильно написать формулу для массива "Result" чтобы она работала? [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X(1, 1)=4,"XXX",0)] End Sub
[/vba] Выдает "Error 2029" из-за этого "X(1, 1)" , а я понятия не имею как обозначить этот элемент в формуле. Заранее благодарю! Автор - Mexo Дата добавления - 09.11.2017 в 06:02
nilem
Дата: Четверг, 09.11.2017, 07:53 |
Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Mexo , привет так нужно?: [vba]Код
Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = "X_1" X(1, 2) = "X_2" X(2, 1) = "X_3" X(2, 2) = "X_4" Dim Result(1 To 1) As Variant Result(1) = IIf(X(1, 1) = 4, "XXX", 0) MsgBox Result(1) End Sub
[/vba]
Mexo , привет так нужно?: [vba]Код
Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = "X_1" X(1, 2) = "X_2" X(2, 1) = "X_3" X(2, 2) = "X_4" Dim Result(1 To 1) As Variant Result(1) = IIf(X(1, 1) = 4, "XXX", 0) MsgBox Result(1) End Sub
[/vba]nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Mexo , привет так нужно?: [vba]Код
Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = "X_1" X(1, 2) = "X_2" X(2, 1) = "X_3" X(2, 2) = "X_4" Dim Result(1 To 1) As Variant Result(1) = IIf(X(1, 1) = 4, "XXX", 0) MsgBox Result(1) End Sub
[/vba]Автор - nilem Дата добавления - 09.11.2017 в 07:53
Mexo
Дата: Четверг, 09.11.2017, 08:36 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Спасибо, так работает. А как можно вставить элемент "X(1,1)" вместо ссылки на ячейку K43 в эту формулу:Код
=IFERROR(IF(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))="5296274|5296274",4, IF(AND(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))<>"5296274|5296274", IF(FIND("5296274",INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))),2)),2,"")),"")
? Помогите пожалуйста!
Спасибо, так работает. А как можно вставить элемент "X(1,1)" вместо ссылки на ячейку K43 в эту формулу:Код
=IFERROR(IF(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))="5296274|5296274",4, IF(AND(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))<>"5296274|5296274", IF(FIND("5296274",INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))),2)),2,"")),"")
? Помогите пожалуйста! Mexo
Ответить
Сообщение Спасибо, так работает. А как можно вставить элемент "X(1,1)" вместо ссылки на ячейку K43 в эту формулу:Код
=IFERROR(IF(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))="5296274|5296274",4, IF(AND(INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))<>"5296274|5296274", IF(FIND("5296274",INDEX(BASE!C:C,MATCH(FR!$C$6&"|"&K43,BASE!$A:$A,0))),2)),2,"")),"")
? Помогите пожалуйста! Автор - Mexo Дата добавления - 09.11.2017 в 08:36
Mexo
Дата: Четверг, 09.11.2017, 08:40 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Вернее не элемент "X(1,1)", а его значение.
Вернее не элемент "X(1,1)", а его значение. Mexo
Ответить
Сообщение Вернее не элемент "X(1,1)", а его значение. Автор - Mexo Дата добавления - 09.11.2017 в 08:40
nilem
Дата: Четверг, 09.11.2017, 08:47 |
Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Макросом записываете формулу на лист. Так? если да, то типа такого [vba]Код
ПОИСКПОЗ(FR!$C$6&"|"&K43;ОСНОВАНИЕ!$A:$A;0))
[/vba] будет выглядеть [vba]Код
ПОИСКПОЗ(FR!$C$6&"|" & x(1,1) & ";ОСНОВАНИЕ!$A:$A;0))
[/vba]ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком
Макросом записываете формулу на лист. Так? если да, то типа такого [vba]Код
ПОИСКПОЗ(FR!$C$6&"|"&K43;ОСНОВАНИЕ!$A:$A;0))
[/vba] будет выглядеть [vba]Код
ПОИСКПОЗ(FR!$C$6&"|" & x(1,1) & ";ОСНОВАНИЕ!$A:$A;0))
[/vba]ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком nilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Четверг, 09.11.2017, 08:50
Ответить
Сообщение Макросом записываете формулу на лист. Так? если да, то типа такого [vba]Код
ПОИСКПОЗ(FR!$C$6&"|"&K43;ОСНОВАНИЕ!$A:$A;0))
[/vba] будет выглядеть [vba]Код
ПОИСКПОЗ(FR!$C$6&"|" & x(1,1) & ";ОСНОВАНИЕ!$A:$A;0))
[/vba]ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком Автор - nilem Дата добавления - 09.11.2017 в 08:47
Mexo
Дата: Четверг, 09.11.2017, 09:27 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Спасибо! Буду пробовать.ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком
Это из-за скорости обработки? Столбцы целиком указал т.к. это динамический диапазон. Как можно записать в формуле чтобы проверяло не весь столбец "С", а только заполненные строки в нем?
Спасибо! Буду пробовать.ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком
Это из-за скорости обработки? Столбцы целиком указал т.к. это динамический диапазон. Как можно записать в формуле чтобы проверяло не весь столбец "С", а только заполненные строки в нем? Mexo
Ответить
Сообщение Спасибо! Буду пробовать.ИНДЕКС(ОСНОВАНИЕ!C:C - желательно не указывать столбцы целиком
Это из-за скорости обработки? Столбцы целиком указал т.к. это динамический диапазон. Как можно записать в формуле чтобы проверяло не весь столбец "С", а только заполненные строки в нем? Автор - Mexo Дата добавления - 09.11.2017 в 09:27
Mexo
Дата: Четверг, 09.11.2017, 09:38 |
Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Макросом записываете формулу на лист. Так?
Вначале сделал массив с формулами на листе, но мне не понравилась скорость обработки данных. Решил сделать все вычисления в массиве, а на лист чтобы выводился только общий результат. т.к. есть предположения что скорость обработки должна увеличиться.
Макросом записываете формулу на лист. Так?
Вначале сделал массив с формулами на листе, но мне не понравилась скорость обработки данных. Решил сделать все вычисления в массиве, а на лист чтобы выводился только общий результат. т.к. есть предположения что скорость обработки должна увеличиться.Mexo
Ответить
Сообщение Макросом записываете формулу на лист. Так?
Вначале сделал массив с формулами на листе, но мне не понравилась скорость обработки данных. Решил сделать все вычисления в массиве, а на лист чтобы выводился только общий результат. т.к. есть предположения что скорость обработки должна увеличиться.Автор - Mexo Дата добавления - 09.11.2017 в 09:38
nilem
Дата: Четверг, 09.11.2017, 09:42 |
Сообщение № 8
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
ну типа [vba]Код
dim adr$ adr=Range("C1", Cells(Rows.Count, 3).End(xlUp)).address(,,r1c1) formula="index(" & adr &",match ...
[/vba] Мне кажется нереально) давайте сразу пример
ну типа [vba]Код
dim adr$ adr=Range("C1", Cells(Rows.Count, 3).End(xlUp)).address(,,r1c1) formula="index(" & adr &",match ...
[/vba] Мне кажется нереально) давайте сразу пример nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение ну типа [vba]Код
dim adr$ adr=Range("C1", Cells(Rows.Count, 3).End(xlUp)).address(,,r1c1) formula="index(" & adr &",match ...
[/vba] Мне кажется нереально) давайте сразу пример Автор - nilem Дата добавления - 09.11.2017 в 09:42
nilem
Дата: Четверг, 09.11.2017, 09:44 |
Сообщение № 9
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Решил сделать все вычисления в массиве
Тогда не парьтесь с формулами. Давайте сразу пример. И что нужно посчитать
Решил сделать все вычисления в массиве
Тогда не парьтесь с формулами. Давайте сразу пример. И что нужно посчитатьnilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение Решил сделать все вычисления в массиве
Тогда не парьтесь с формулами. Давайте сразу пример. И что нужно посчитатьАвтор - nilem Дата добавления - 09.11.2017 в 09:44
Mexo
Дата: Четверг, 09.11.2017, 11:19 |
Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Попытался укоротить оригинал в итоге в ячейках с формулами не выводятся значения.
Попытался укоротить оригинал в итоге в ячейках с формулами не выводятся значения. Mexo
Ответить
Сообщение Попытался укоротить оригинал в итоге в ячейках с формулами не выводятся значения. Автор - Mexo Дата добавления - 09.11.2017 в 11:19
Mexo
Дата: Четверг, 09.11.2017, 11:52 |
Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Получилось только без ссылок. AQ2:AU3 - 9 ячеек с общим результатом.
Получилось только без ссылок. AQ2:AU3 - 9 ячеек с общим результатом. Mexo
К сообщению приложен файл:
-2-.xlsm
(55.9 Kb)
Ответить
Сообщение Получилось только без ссылок. AQ2:AU3 - 9 ячеек с общим результатом. Автор - Mexo Дата добавления - 09.11.2017 в 11:52
nilem
Дата: Четверг, 09.11.2017, 12:04 |
Сообщение № 12
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
я, например, ничего не понял ( может, словами напишете, что нужно получить. Т.е. нарисовать какие-то исходные данные, и какой-то результат, и пояснить, как это должно получаться.
я, например, ничего не понял ( может, словами напишете, что нужно получить. Т.е. нарисовать какие-то исходные данные, и какой-то результат, и пояснить, как это должно получаться. nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение я, например, ничего не понял ( может, словами напишете, что нужно получить. Т.е. нарисовать какие-то исходные данные, и какой-то результат, и пояснить, как это должно получаться. Автор - nilem Дата добавления - 09.11.2017 в 12:04
Mexo
Дата: Четверг, 09.11.2017, 13:51 |
Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Проще показать, написал Вам в личку.
Проще показать, написал Вам в личку. Mexo
Ответить
Сообщение Проще показать, написал Вам в личку. Автор - Mexo Дата добавления - 09.11.2017 в 13:51
Pelena
Дата: Четверг, 09.11.2017, 15:03 |
Сообщение № 14
Группа: Админы
Ранг: Местный житель
Сообщений: 19181
Репутация:
4420
±
Замечаний:
±
Excel 365 & Mac Excel
Это нарушение Правил форума. Решайте задачу здесь
Это нарушение Правил форума. Решайте задачу здесьPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Это нарушение Правил форума. Решайте задачу здесьАвтор - Pelena Дата добавления - 09.11.2017 в 15:03
Mexo
Дата: Четверг, 09.11.2017, 20:15 |
Сообщение № 15
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Хорошо, прошу прощения, перечитал п.5
Хорошо, прошу прощения, перечитал п.5 Mexo
Ответить
Сообщение Хорошо, прошу прощения, перечитал п.5 Автор - Mexo Дата добавления - 09.11.2017 в 20:15
Mexo
Дата: Пятница, 10.11.2017, 01:45 |
Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 60
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
В итоге решил вставить в формулу не элемент, а саму именованную формулу этого элемента. Типа такого: [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X_1=4,"XXX",0)] End Sub
[/vba] Так работает.
В итоге решил вставить в формулу не элемент, а саму именованную формулу этого элемента. Типа такого: [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X_1=4,"XXX",0)] End Sub
[/vba] Так работает. Mexo
Сообщение отредактировал Mexo - Пятница, 10.11.2017, 01:47
Ответить
Сообщение В итоге решил вставить в формулу не элемент, а саму именованную формулу этого элемента. Типа такого: [vba]Код
Option Explicit Sub Test() Dim X(1 To 2, 1 To 2) As Variant X(1, 1) = [X_1] X(1, 2) = [X_2] X(2, 1) = [X_3] X(2, 2) = [X_4] Dim Result(1 To 1) As Variant Result(1) = [=IF(X_1=4,"XXX",0)] End Sub
[/vba] Так работает. Автор - Mexo Дата добавления - 10.11.2017 в 01:45