Вход | Регистрация

1С:Предприятие ::

Метки: 

Как переписать екселевскую формулу через числовые значения строк и столбцов?

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

Смысл задачки в том, что программно формирую формулы в ячейках Экселя. Весьма проблематично определять адреса при нумерации типа B4-B64
 
 
   Сияющий Асинхраль
 
1 - 28.11.17 - 18:08
Криво сформулировал :-(, конечно, через числовую нумерацию строк и столбцов
   GrVas
 
2 - 28.11.17 - 18:11
(28) Из 1с?
Формула суммы пишется по другому, попробуй записать макрос.
   azernot
 
3 - 28.11.17 - 18:13
(0) Используй стиль ссылок RC
Сумма(R422:R64C2)
   Сияющий Асинхраль
 
4 - 28.11.17 - 18:15
(2) Из 1С конечно.
(3) С удовольствием, клиент уперся - не хочет на такой стиль переключаться :-(
   azernot
 
5 - 28.11.17 - 18:17
(4) А причём тут клиент? Он смотрит как ему удобнее.
Программно формировать адрес ты можешь как угодно.
   azernot
 
6 - 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
   azernot
 
10 - 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)
   azernot
 
13 - 28.11.17 - 18:31
(11) Ну не знаю, я бы наверное лучше использовал спец.поле, как рекомендуют в (9).
Range("D4").FormulaR1C1 = "=R[-1]C[-2]*10"

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

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


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует