EXCEL高手进

34次阅读

共计 2494 个字符,预计需要花费 7 分钟才能阅读完成。

本来想根据几列的字符串生成一个特征值,我目前想到的就是 MD5 函数,但是 EXCEL 好像没有 MD5 函数,有其他函数或者思路吗?用 & 字符串拼接就算了,不大喜欢这种,因为字符串太长了 woniu 2023-06-27 14:52 2Excel 并没有内置的 MD5 函数,但是可以通过使用 VBA 编写自定义函数来实现 MD5 计算。下面是一个简单的 VBA 代码示例,可以将其添加到 Excel 工作簿中,并使用自定义函数 `MD5()` 来计算字符串的 MD5 值:“`VBAFunction MD5(sInput As String) As String    Dim oMD5 As Object    Set oMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")    Dim bData() As Byte    bData = StrConv(sInput, vbFromUnicode)    Dim bHash() As Byte    bHash = oMD5.ComputeHash_2((bData))    Dim sOutput As String    Dim i As Integer    For i = LBound(bHash) To UBound(bHash)        sOutput = sOutput & LCase(Hex(bHash(i)))    Next i    MD5 = sOutputEnd Function“` 在上面的代码中,使用了 `System.Security.Cryptography.MD5CryptoServiceProvider` 类来计算字符串的 MD5 值。该类使用。NET Framework 的安全框架来提供加密和解密服务。在函数中,将字符串转换为字节数组,然后使用 `ComputeHash_2()` 方法计算字节数组的 MD5 哈希值,并将哈希值转换为字符串返回。使用该函数时,只需要在工作表中输入 `=MD5(" 要计算 MD5 值的字符串 ")`,就可以得到该字符串的 MD5 值。例如,`=MD5("Hello World")` 将会返回字符串 `b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9`。需要注意的是,由于该函数使用了 VBA 编写,因此在使用前需要启用 Excel 的宏功能。同时,在计算大量数据的 MD5 值时,该函数可能会比较慢,因此不适合处理大规模数据。复制代码 five 2023-06-27 14:53 3 根据提供的信息,我认为您的问题是如何在 Excel 中根据几列的字符串生成一个特征值。您可以使用 Excel 的公式和函数来将多列字符串组合成一个特征值。例如,您可以使用 CONCATENATE 函数将多列字符串连接成一个字符串,然后使用 HASH 函数将其转换为唯一的特征值。以下是一个示例公式,将两列字符串 A1 和 B1 连接起来:=HASH(CONCATENATE(A1,B1)) 在此示例中,CONCATENATE 函数将 A1 和 B1 的内容连接在一起,然后将其传递给 HASH 函数以生成一个特征值。您可以根据需要调整此公式,例如添加更多列或选择不同的哈希算法。希望这可以帮助您解决您的问题!ai 的回答? Shinjuku 2023-06-27 14:55 4five 发表于 2023-6-27 14:53 根据提供的信息,我认为您的问题是如何在 Excel 中根据几列的字符串生成一个特征值。您可以使用 Excel 的公式 … 关键没 HASH 这个函数   ? five 2023-06-27 14:57 5Shinjuku 发表于 2023-6-27 14:55 关键没 HASH 这个函数那就有点尴尬了,参考其他大佬的吧 five 2023-06-27 15:01 6 又问了一下 ai? 如果你想在 Excel 中根据几列的字符串生成一个特征值,可以使用一些文本函数和数学函数来完成。下面是一个示例,假设你有三列字符串数据分别位于列 A、B 和 C:在列 D 中,使用 CONCATENATE 函数将三列字符串合并成一个字符串。例如,将 A2、B2 和 C2 合并,公式为:=CONCATENATE(A2, B2, C2)。在列 E 中,使用 LEN 函数计算合并后字符串的长度。例如,将 D2 的长度计算公式为:=LEN(D2)。在列 F 中,使用 CODE 函数计算合并后字符串的字符值之和。例如,将 D2 的字符值之和计算公式为:=SUM(CODE(MID(D2, ROW(INDIRECT("1:"&LEN(D2))), 1)))-64*LEN(D2)。在列 G 中,使用 MOD 函数计算字符值之和的模(余数),这将生成最终的特征值。例如,将 F2 的模计算公式为:=MOD(F2, 100)。这样,列 G 中的值就是根据几列字符串生成的特征值。请注意,上述示例假设字符串只包含大写字母,并且生成的特征值在 0 到 99 之间。你可以根据实际情况进行修改和调整公式。晴晴晴 2023-06-27 15:01 7 根据我的搜索结果,Excel 自带的函数中没有专门用于生成哈希值的函数,但是您可以利用一些文本函数或者数学函数来实现类似的功能。例如,您可以使用 FIND 函数 1 来查找文本中的某个子串,并返回它的位置,然后再用其他函数如 MOD、SUM、CONCATENATE 等来组合这些位置,得到一个类似哈希值的结果。2 惜为伊人醉 2023-06-27 15:04 8 考虑用谷歌表格?匿名 2023-06-27 15:38 9 写 Python 脚本用 pandas 读取你的 excel 文件然后用 md5 函数生成对应的值放到对应的列然后存储数据回 excel 文件 seefan 2023-06-27 15:49 10 用 Code 函数计算第一个字符的数字代码,然后相乘;比如有 3 列,A1 为“张三”,B1 为“16 岁”,C1 为“男”,用公式就是 =CODE(A1)*CODE(B1)*CODE(C1),但是超过 15 位就会出现科学计数,类似 1.35106E+11,可以用 LEFT 函数取前 15 位,或者也可以用 DEC2HEX 转成十六进制,反正就是利用 CODE 函数对单元格某一位数值进行转换,转换后在加减乘除之类的运算,自己发挥。

正文完
 0