【问题标题】:Subtract the value of an IP Address from another从另一个 IP 地址中减去一个 IP 地址的值
【发布时间】:2018-04-03 18:37:36
【问题描述】:

我在一张表中有两个单元格,都包含一个 IP 地址:

C2 = 192.168.0.1

C3 = 192.168.0.10

我想从 C3 中减去 C2...给我 9 的结果。地址将始终具有相同的前三个八位字节。在本例中,192.168.0 在两个单元格中都是常数。只有最后一个八位字节会改变。

这可以吗?我尝试的一切,包括 Value 和 Value2 都以错误结尾。

所以说 C4 我的公式是

=C3-C2
or
=Value(c3)-Value(c2)

给出错误。我是个新手,所以要温柔。谢谢。

【问题讨论】:

  • 你不能用 IP 地址做这样的算术。你会怎么做 1.2.3.4 - 200.200.200.200?这种差异甚至意味着什么?
  • 值格式为Text,因此 Excel 不会将它们解释为数字。因此,当您尝试从另一个文本字符串中减去一个文本字符串时,Excel 会出错。为了完成你想要的,你必须假设前三个值(192、168和0)是相同的,然后你必须从字符串中分离出最后一个值并减去它。
  • 想减去最后一个数字吗?
  • use-case 是什么。您将如何处理差异值?是否所有设备都将192.168.0 作为通用部件,或者是否也有不同的类型。 请更新您的问题以获得更好的答复
  • 其实是的。最后一个八位字节是唯一的问题。区别总是几个不同的数字之一 - 1,5, 13, 29, 61, 125 或 253。想出这个数字是通过工作表自动填充子网掩码字段的关键。我想我可以专门为最后一个八位字节创建另一个字段,但这是不可取的。

标签: excel ip ip-address subtraction


【解决方案1】:

因此,您需要将每个 IP 地址转换为一个数字,然后减去这些数字以获得差异。在几种编程语言中,这个函数被称为inet_aton(它代表“互联网数组到数字”)。谷歌搜索“inet_aton excel”返回几个链接,one of which 给出了一个公式:

=VALUE(LEFT(A1,FIND(".",A1)-1))*2^24+VALUE(MID(A1,FIND(".",A1)+1,FIND(".",A1,FIND(".",A1)+1)-FIND(".",A1)-1))*2^16+VALUE(MID(A1,FIND(".",A1,FIND(".",A1)+1)+1,FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)-FIND(".",A1,FIND(".",A1)+1)-1))*2^8+VALUE(RIGHT(A1,LEN(A1)-FIND(".",A1,FIND(".",A1,FIND(".",A1)+1)+1)))

这是一团糟,我不打算验证它,但你应该能够使用它来将你的 IP 地址转换为数字并减去它们。

该博客的下一页告诉您如何将此公式添加为自定义 Excel 函数,然后您可以使用它。

【讨论】:

    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2019-09-10
    • 1970-01-01
    • 2021-10-18
    • 2013-07-02
    相关资源
    最近更新 更多