Обойти для Excel максимум символов для формулы - PullRequest
0 голосов
/ 08 мая 2019

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

У меня есть 4 подразделения, примерно 9 городов в каждом и данные, расширяющие 2000 ячеек.

=IF(ISNUMBER(SEARCH("ATLANTA",F3:F2002)),"SW",IF(ISNUMBER(SEARCH("BIRMINGHAM",F3:F2002)),"SW",IF(ISNUMBER(SEARCH("CHATTANOOGA",F3:F2002)),"SW",

это всего лишь часть этого, я могу разделить их, но подумал, что будет проще найти один столбец по нескольким именам и в зависимости от того, какое имя применить, деление в другой ячейке ,,, s sw ne nw

Я собираюсь прикрепить картинку, чтобы увидеть, как она работает, но из-за ограничения по количеству символов мне придется разделить лист, если нет обходного пути. enter image description here

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

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

Пример данных:

enter image description here

Формула в A2:

=CHOOSE(SUMPRODUCT((ISNUMBER(SEARCH({"BIRMINGHAM","ATLANTA","CUMBERLAND","BALTIMORE"},B2)))*ROW($1:$4)),"BH","ATL","CL","BM")

Очевидно, вы можете расширить это так, как вы хотите

0 голосов
/ 08 мая 2019

Я бы рискнул в VBA на вашем месте. Нажмите Alt + F11 и вставьте следующее. Это должно быть довольно просто, i, шаг за шагом, мы присваиваем значение диапазона F1 переменной cellValue, а затем проверяем, находится ли каждый город в строке (inStr) cellValue. Вам нужно будет скопировать и вставить каждый оператор If для каждого города, который вы хотите.

Public Sub searchCities()
Dim cellValue As String

For i = 1 To 2000
    cellValue = Range("F" & i).Value
    If InStr(1, cellValue, "Birmingham", vbTextCompare) Then
        Range("B" & i).Value = "SW"
    End If
    If InStr(1, cellValue, "Mobile", vbTextCompare) Then
        Range("B" & i).Value = "SW"
    End If
Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...