excel - 从公式填充的单元格中提取数据时出现问题
问题描述
我导入了一个 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。
解决方案
我将按如下方式处理这个问题:
- 使用 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”...
推荐阅读
- javascript - 比较数组时出现 Chai 断言错误
- android - 上传的 APK 没有有效的签名 Firebase TestLab 仪器测试类型
- ios - 如何将内容从一个应用程序共享到另一个应用程序
- r - 从折叠字符中提取正则表达式(包括“|”)
- rest-assured - 如何从响应中验证类型?
- node.js - 如何修复'events.js:180 throw er; // 未处理的 'error' 事件 Error: spawn ls ENOENT
- angular - 禁用用户 ID 输入字段时更新用户出错
- python - 如何将我的 Postgresql 服务器与我通过 Wix 创建的网站连接起来?
- dart - Future 类型的值
不能分配给 Class 类型的实体 - c# - 在 XElement 中使用“for”循环