-1

У меня есть следующая формула

=MID(G34,FIND(" ",G34),FIND(" ",G34,FIND(" ",G34)+1)-FIND(" ",G34))

G34 ="begining middle end"

Цель этой формулы - вернуть "middle" и она его достигает, но код для нее - беспорядок (трудный для чтения, не СУХОЙ), потому что он не может хранить переменную в формуле Excel (в данном случае результат FIND(" ",G34)). Я знаю, что это можно импровизировать, используя вторую ячейку, и это легко сделать в VBA, но я намерен использовать это в формуле массива, чтобы вспомогательный столбец и VBA были для меня невозможны.

Итак, каковы наиболее близкие возможные решения для того, чтобы сделать эту формулу более СУХОЙ (не более / менее FIND(" ",G34)?

Пожалуйста, не спрашивайте меня, что означает «DRY» - это общее название в мире программирования, спасибо.

БОНУС

Я прочитал эту статью, и она звучит так, как будто она может быть полезна в этом случае, но я запутался, как это будет работать в моем примере, если это не имеет значения, тогда забудьте об этом, другие решения будут работать

1 ответ1

1

Как описано на странице, на которую вы ссылались по поводу именованных формул, вы можете добавить свою формулу и дать ей имя, но она будет параметризована относительными или абсолютными ссылками на ячейки. Например, если вы находитесь в ячейке H34 при создании именованной формулы, вы сможете использовать ее только из ячейки, расположенной справа от ячейки с текстовой строкой, которую вы хотите обработать.

Например, я добавил эти именованные формулы, когда G33 был выбран на листе:

firstspace: =FIND(" ", G34)
secondword: =MID(G34, firstspace+1, FIND(" ", G34, firstspace+1)-firstspace-1)

Теперь я могу использовать = secondword в G33, и он извлечет "середину" из G34.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .