2016-03-09 3 views
0

Эй, я пытаюсь получить формулу excel, чтобы она соответствовала формуле валидации данных, которая после небольшого исследования, которое я нахожу, имеет ограничение на 255 символов. У меня 277 символов, и я чувствую, что у меня есть некоторые увольнения, но я недостаточно продвинутый, чтобы понять, как обрезать этого хеффера. Может ли кто-нибудь помочь?Обрежьте формулу excel?

=IF(AND(H11="Embryo",G11<>"F2"),INDIRECT("'"&C11&"'"&"!$g$24:$g$27"),IF(AND(H11="Seed",G11<>"F2"),INDIRECT("'"&C11&"'"&"!$h$24:$h$27"),IF(AND(H11="Seed",G11="F2"),INDIRECT("'"&C11&"'"&"!$g$117:$g$120"),IF(AND(H11="Embryo",G11="F2"),INDIRECT("'"&C11&"'"&"!$h$117:$h$120"),E2)))) 
+0

Это попытка вернуть массив, но он вернет только значение первой ячейки в массиве. Является ли он частью формулы большего массива? –

ответ

2

Как вы всегда включаете ячейку C11 внутри INDIRECT, пожалуйста, рассмотрите следующую формулу, которая помещает INDIRECT снаружи, а условные выражения просто возвращают адреса диапазона в виде строк.

=INDIRECT("'"&C11&"'"&IF(AND(H11="Embryo",G11<>"F2"),"!$g$24:$g$27",IF(AND(H11="Seed",G11<>"F2"),"!$h$24:$h$27",IF(AND(H11="Seed",G11="F2"),"!$g$117:$g$120",IF(AND(H11="Embryo",G11="F2"),"!$h$117:$h$120",E2))))) 

Обратите внимание, что эта логика будет нарушена, если ни одно из условий не будет выполнено. С уважением,

+0

Ницца! Я до сих пор не вижу, что здесь пытается выполнить OP, пытаясь вернуть массив в одну ячейку. Но это, вероятно, так же просто, как это получится. –

+1

Я согласен, но я переставал пытаться выяснить, что происходит с людьми. Cheers – nbayly

+0

Спасибо @nbayly! некоторые вещи перевернули, но он будет работать отлично =) – bwatson30

0

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

+0

Я не знаю, будет ли это работать, поскольку большие диапазоны находятся внутри 'INDIRECT'. Когда он разрешит формулу, он заменит именованные диапазоны на '.Value', а не на' .Address'. Кто-то не согласен? – nbayly

+0

Уверенный, что он просто разбил бы расчет на сегменты и поместил бы имя в точке суммирования, а затем разместил его в базовом расчете. Таким образом, вы можете сделать гораздо более крупные форматы, которые намного превышают ограничение основного персонажа. –

+0

Моя проблема не в том, что было сказано так сильно, как это комментарий больше, чем это ответ. –