2016-05-18 2 views
0

У меня есть функция, которую я использую в xlwings, которая возвращает 3 значения в виде кортежа. Я хотел бы вернуть все эти значения в 3 ячейки в excel, не вызывая функцию 3 раза, когда вычисления выполняются вместе. Вот некоторые фиктивный код:xlwings не возвращает tuple

@xw.func 
def pull_data_and_calc(search_key):  
    betas = calculations() # calculations returns a tuple of size 3 
    beta = betas[0] 
    beta_up = betas[1] 
    beta_down = betas[2] 
    return beta, beta_up, beta_down 

Любой, кто вычислил беты, прежде чем знает, что суммарная бета рассчитывается вместе с beta_up и beta_down поэтому было бы крайне неэффективно для выполнения функций для каждого расчета бета. Я прошу прощения за то, что вы не указали больше кода, но это невозможно по причинам соблюдения, и это относительно похоже на результат.

Запуск этой функции в excel показывает только бета-значение, и я не могу заставить его отображать бета-версию или бета-версию. Любая помощь будет замечательной!

ответ

1

Я предполагаю, что вы просто нажали ENTER, чтобы применить формулу в excel. Если нет, то неважно.

При входе в функцию в Excel, сделать это с тремя ячейками, выбранными, как это: enter image description here

затем нажмите CTRL + SHIFT + ENTER, чтобы ввести формулу как формулу массива. Это применит формулу ко всем трем ячейкам в виде массива и позволит выводить несколько возвращаемых значений из вашей функции python.

+0

Большое спасибо! –

Смежные вопросы