如何在 Excel 2016 或 LibreOffice 中将单元格中的文本转换为带有分隔符的一系列 ASCII 代码值?

问题描述 投票:0回答:3

给定一个带有文本的单元格,我需要一个公式来输出该文本字符串中每个字符的 ascii 代码序列。

  • 可以假设输入字符串具有 ASCII 值在 0-255 范围内的字符
  • 输入字符串通常为 4 个或更少字符,但最多可达 10 个
  • 输出应包含分隔符,例如空格(“”)
  • 理想情况下,输出不应以分隔符结尾
  • 该公式必须在 Excel 2016 或 LibreOffice 中有效(我的在线访问受到限制)

示例(以空格作为分隔符:输入 -> 输出

  • abc -> 97 98 99
  • YZ[ -> 89 90 91
  • T -> 84

我能找到的最接近的代码示例是这里 :

  • =SUM(CODE(MID(C1,ROW(INDIRECT("1:"&LEN(C1))),1)))
    使用数组公式
  • =SUMPRODUCT(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)))
    避免了数组公式

在上述两种情况下,我无法调整示例以使用 CONCATENATE 将各个片段连接成 Ascii 代码序列。

excel string excel-formula ascii libreoffice-calc
3个回答
4
投票

如果您有 Office 365:

=TEXTJOIN(" ",,CODE(MID(A1,SEQUENCE(LEN(A1)),1)))


= ARRAYTOTEXT(CODE(MID(A1,SEQUENCE(LEN(A1)),1)),0)


1
投票

对于

Excel 2016
,基于公式的解决方案仅适用于包含不超过 5 个字符的字符串,即:

=TRIM(SUBSTITUTE(SUBSTITUTE(TEXT(SUMPRODUCT(10^(15-3*(ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1)))-1))*CODE(MID(A1,ROW(INDEX(A:A,1):INDEX(A:A,LEN(A1))),1))),REPT(" 000",6))," 00"," ")," 0"," "))

否则,您将需要

VBA


0
投票

=TEXTJOIN("", TRUE, 代码(MID(A2, ROW(间接("1:15")), 1)))

© www.soinside.com 2019 - 2024. All rights reserved.