Имя: Пароль:
1C
 
Как переписать екселевскую формулу через числовые значения строк и столбцов?
0 Сияющий Асинхраль
 
28.11.17
18:05
Имеется простейшая формула:
Сумм(B4:B64)
надо переписать ее так, чтобы отсутствовали буквенные обращения к колонкам. Пытаюсь переписать, через Адрес, выдает ошибку:
Сумм(Адрес(4;2):Адрес(64;2)) - выдает ошибку.

Смысл задачки в том, что программно формирую формулы в ячейках Экселя. Весьма проблематично определять адреса при нумерации типа B4-B64
1 Сияющий Асинхраль
 
28.11.17
18:08
Криво сформулировал :-(, конечно, через числовую нумерацию строк и столбцов
2 GrVas
 
28.11.17
18:11
(28) Из 1с?
Формула суммы пишется по другому, попробуй записать макрос.
3 azernot
 
28.11.17
18:13
(0) Используй стиль ссылок RC
Сумма(R422:R64C2)
4 Сияющий Асинхраль
 
28.11.17
18:15
(2) Из 1С конечно.
(3) С удовольствием, клиент уперся - не хочет на такой стиль переключаться :-(
5 azernot
 
28.11.17
18:17
(4) А причём тут клиент? Он смотрит как ему удобнее.
Программно формировать адрес ты можешь как угодно.
6 azernot
 
28.11.17
18:19
(4) Просто попробуйте вручную, в ячейку вставить формулу
=СУММ(ДВССЫЛ(СЦЕПИТЬ("R";"2";"C";"4");ЛОЖЬ):ДВССЫЛ(СЦЕПИТЬ("R";"2";"C";"64");ЛОЖЬ))
7 Сияющий Асинхраль
 
28.11.17
18:21
(5) Вариант "=Сумм(R4C2:R64C2)" пытался передать в 1С, но тоже выдает ошибку
(6) Сейчас попробую
8 Вафель
 
28.11.17
18:22
(7) По оле можно в любом виде формулу передавать. там есть спец реквизит
9 Вафель
 
28.11.17
18:22
10 azernot
 
28.11.17
18:23
(0) Ну или вот решение задачи с твоими условиями:
Сумм(ДВССЫЛ(Адрес(4;2)):ДВССЫЛ(Адрес(64;2)))
11 Сияющий Асинхраль
 
28.11.17
18:27
(10) Да!!! Спасибо!!! То что надо.
12 Вафель
 
28.11.17
18:31
Лучше юзать все-таки (9) ибо он однозначно переводится в обычный формат.
те в финальном файле не будет таких зловещих формул как (10)
13 azernot
 
28.11.17
18:31
(11) Ну не знаю, я бы наверное лучше использовал спец.поле, как рекомендуют в (9).
Range("D4").FormulaR1C1 = "=R[-1]C[-2]*10"

Чем меньше в формуле дополнительных вычислений, тем лучше
14 Tateossian
 
28.11.17
18:36
Ужас, ну и костыли))) Упертые заказчики))
15 Сияющий Асинхраль
 
29.11.17
11:57
(13) Использовал таки вариант
FormulaR1C1 = "=R3C2*10";
Он дает формулу в Excel в виде: =$B$3*10
Тоже, конечно, не очень визуально красиво. Но зато коротко :-)
16 azernot
 
29.11.17
13:08
(15) А что вы хотите? Относительные формулы?
Ну так рассчитайте положение искомой ячейки относительно текущей и задайте относительную формулу типа
FormulaR1C1 = "=R[-3]C[-1]*10";
17 Tatitutu
 
29.11.17
13:18
(15) ты с $ по аккуратнее . Знаешь для чего они нужны ?

$B$3 - по сути константа (при копировании и перемещении)
18 Сияющий Асинхраль
 
30.11.17
18:02
(16-17) Убедили :-) , переделал на вариант (13) - и самому приятно и клиентам :-)