首页 > 解决方案 > 从公式填充的单元格中提取数据时出现问题

问题描述

我导入了一个 txt 文档,它创建了 7 列数据。文档中的一个数据点是 MAC 地址,但是,由于 txt 文档的格式(并且无法绕过),MAC 地址被分成 6 列 (BG),所有其他相关的B 列中存在的数据(非 MAC 地址)。

我正在尝试编写一个公式来检查 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)

这是代码的样子,当我把它分成两部分时:

H 栏: =B2&":"&C2&":"&D2&":"&E2&":"&F2&":"&G2, B2

第一栏: =IF(ISNUMBER(SEARCH(“BSSID”,A2)),H2,B2)

如果为真,这两个代码都只返回单元格 B2 中的值,而不是看起来像 MAC 地址的值。

我的预期结果是,在一个公式中,如果 B2 包含字符串“BSSID”,那么 H2 将显示 B2-G2 的内容,其格式看起来像 MAC 地址;如果 B2 不包含字符串“BSSID”,则 H2 将显示 B2 的内容。

实际结果是H2,当公式返回true时,只显示B2,不显示B2-G2。

标签: excelexcel-formula

解决方案


我将按如下方式处理这个问题:

  • 使用 IF 语句检查单元格的 BSSID=IF(SEARCH("BSSID",A2), <true>, <false>)
  • 但是,如果未找到“BSSID”,此语句可能会导致错误。您的代码看起来不错,但问题可能就在这里。可以肯定的是,我们可以使用 IFERROR 为错误插入一个 catch=IF(IFERROR(SEARCH("BSSID",A2), FALSE), <true>, <false>)
  • 然后,在<true>IF 语句的部分中,我将使用TEXTJOIN将我的单元格与中间的冒号组合起来...TEXTJOIN(":",TRUE,B2:G2)...

编辑:我注意到您在一个位置说您正在检查单元格 A2 的“BSSID”,而在另一个位置说您正在检查单元格 B2。也许确保您没有检查错误的单元格?

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

...

我的预期结果是,在一个公式中,如果 B2 包含 H2 将...的字符串“BSSID”...


推荐阅读