Инструмент для написания формул Excel и выражений IF? - PullRequest
2 голосов
/ 12 октября 2009

Это формула Excel с вложенными выражениями IF:

=IF((B2="East"),4,IF((B2="West"),3,IF((B2="North"),2,IF((B2="South"),1,""))))

Чтобы по существу этого добиться:

If cell B2 = "East"
   return "4"

ElseIf cell B2 = "West"
   return "3"

ElseIf cell B2 = "North"
   return "2"

ElseIf cell B2 = "South"
   return "1"

Else
   return ""

Могут ли формулы Excel быть написаны таким «более читабельным» образом и преобразованы в официальный синтаксис? Есть ли какой-нибудь инструмент, помогающий писать формулы для Excel?

Это может быть вопрос "суперпользователя" ... но только программисты могут знать ответ!

Ответы [ 4 ]

3 голосов
/ 12 октября 2009

Надстройка Excel Formula Formatter от Роба ван Гелдера, упомянутая в ежедневной дозе Excel.

Панель формул Excel игнорирует перевод строки и пробел, поэтому вы можете нажать Alt + Enter и пробел, чтобы отформатировать формулы так, как вам нравится. Я попробовал это, и я быстро прекратил это делать. Слишком много пробелов, особенно если вам нужно редактировать.

1 голос
/ 12 октября 2009

Есть ли какой-нибудь инструмент, помогающий написать Excel формулы?

Я не думаю, что есть, я боюсь.

В приведенном конкретном примере я склонен сделать следующее:

  1. Создайте новое имя, назовите его как CompassPoints и установите его значение на ={"South";"North";"West";"East"}
  2. Теперь ваша формула становится =MATCH(CompassPoints, B2, 0)
1 голос
/ 12 октября 2009

Один из вариантов - использовать VBA для создания пользовательской функции.

Вы добавили бы новый Модуль в рабочую книгу, а затем вставили какой-то VB, который выглядел примерно так:

Function DirectionAsInt(Direction)
    Select Case (Direction):
        Case "East":
            DirectionAsInt = 4
        Case "West":
            DirectionAsInt = 3
        Case "North":
            DirectionAsInt = 2
        Case "South":
            DirectionAsInt = 1
    End Select
End Function

Тогда в вашей камере вы можете положить:

=DirectionAsInt(B2)
0 голосов
/ 12 октября 2009

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

Для вашего примера вы также можете просто создать справочную таблицу на другом листе или в некоторых скрытых ячейках.

...