Проблема извлечения данных из ячейки, заполненной формулой - PullRequest
0 голосов
/ 17 мая 2019

Я импортировал текстовый документ, который создает 7 столбцов данных.Одной из точек данных в документе является MAC-адрес, однако, из-за формата документа txt (и нет никакого способа обойти это), MAC-адрес разделен на 6 столбцов (BG), со всеми остальными соответствующимиданные (не MAC-адреса), существующие в столбце B.

Я пытаюсь написать формулу для проверки ячейки в столбце B, и если она содержит «BSSID», то она объединит текст в соответствующей строке изстолбцы BG и вводит новое значение в столбец H (поэтому он отображается как обычный MAC-адрес).Если ячейка не содержит «BSSID», то значение этой ячейки просто необходимо переместить в соответствующую строку в столбце H.

МОЯ ПРОБЛЕМА ДАНА по приведенной ниже формуле, если ячейка содержит «BSSID»соответствующая строка в столбце H будет отображать только значение ячейки в первом столбце, а не все столбцы.

Я попытался взять код, который объединяет ячейки в BG в формуле, и заключил его в скобки и кавычки, но безуспешно.
Я также попытался сделать это многошаговое решение, выполнив толькоформула для объединения всего в столбце H, а затем в столбце I с помощью формулы.
Я попытался переместить значение, возвращенное в столбце H, в столбец I, но столкнулся с той же проблемой.
И я попыталсяпоменяв местами возвращаемые значения, просто чтобы убедиться, что я не перепутал истинное возвращение с ложным возвращением.

Исходный код, который я хотел бы получить для работы:

=IF(ISNUMBER(SEARCH(“BSSID”,A2)),B2&":"&C2&":"&D2&":"&E2&":"&F2&":"&G2,B2)

Этокак выглядел код, когда я разбил его на 2 части:

Столбец H: =B2&":"&C2&":"&D2&":"&E2&":"&F2&":"&G2, B2

Столбец I: =IF(ISNUMBER(SEARCH(“BSSID”,A2)),H2,B2)

Оба кода возвращают толькозначение в ячейке B2, если оно истинно, а не то, что должно выглядеть как MAC-адрес.

В одной формуле мои ожидаемые результаты будут, если B2 содержит строку "BSSID", что H2 будет показывать содержимое B2-G2 отформатирован, чтобы выглядеть какMAC-адрес;и если B2 не содержит строку «BSSID», то H2 покажет содержимое B2.

Фактический результат состоит в том, что H2, когда формула возвращает true, отображает только B2, а не B2-G2.

1 Ответ

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

Я бы подошел к этой проблеме следующим образом:

  • Проверьте ячейку для BSSID, используя оператор IF =IF(SEARCH("BSSID",A2), <true>, <false>)
  • Это утверждение может привести к ошибке, если «BSSID» не найден. Ваш код выглядит хорошо, но, возможно, в этом и заключается проблема. Чтобы быть уверенным, мы можем вставить ловушку для ошибок, используя IFERROR =IF(IFERROR(SEARCH("BSSID",A2), FALSE), <true>, <false>)
  • Тогда, в разделе <true> оператора IF, я бы использовал TEXTJOIN , чтобы объединить мои ячейки с двоеточием между ...TEXTJOIN(":",TRUE,B2:G2)...

РЕДАКТИРОВАТЬ: Я заметил, что вы говорите в одном месте, что вы проверяете ячейку A2 для «BSSID», а в другом вы говорите, что проверяете ячейку B2. Возможно, убедитесь, что вы не проверяете не ту ячейку?

= ЕСЛИ (ЕЧИСЛО (ПОИСК ( «BSSID», А2)), В2 & ":" & C2 & ":" & D2 & ":" & Е2 & ":" & F2 & ":" & G2, B2)

...

Мои ожидаемые результаты в одной формуле будут, если B2 содержит строку "BSSID", что H2 будет ...

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