excel 与“²”或平方符号连接

excel concatenate with "²" or squared symbol

我想在 Excel 中使用连接公式,其中还包括上标数字 2(平方符号),但这不适用于以下输入。公式大致是这样的:

=CONCATENATE("13";"²")

我想得到这样的输出:

13²

我试过在字体上使用上标函数 但是当文本在串联内时它不起作用。

我必须使用连接,因为我想自动化。

那里可以用 Excel 2019 吗?或者有可能但需要 VBA?

我还找到了一种不使用连接就可以完成这项工作的方法,它只需要制作一个 table 来映射到上标数字。

第 1 步:字符 Table

在其他地方,使用从“数字”数字到“上标”数字的映射构建一个简单的 table。 在第一列“数字”中,只需键入如下内容:

-9

-8

-7

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

7

8

9

在第二列“上标”中,转到 Excel 功能区插入 > 符号。在“符号”选项卡中,将组合框“字体”更改为“(普通文本)”,将“子集”更改为“上标和下标”。现在将每个字符插入其相应的单元格中,确保使用“上标减号”表示负数。上标 1、2 和 3 位于子集“Latin-1 Supplement”中。

-9 ⁻⁹ -8 ⁻⁸ -7 ⁻⁷ -6 ⁻⁶ -5 ⁻⁵ -4 ⁻⁴ -3 ⁻³ -2 ⁻² -1 ⁻¹ 0⁰ 1 ¹ 2 平方 3³ 4⁴ 5 ⁵ 6 ⁶ 7⁷ 8 ⁸ 9 ⁹

等等。请注意,这些不是“格式化”的数字,而是没有数值的特殊符号。

第二步:Vlook功能

将你希望正常显示的数字放在一列中,设置如下'A1',即:

单元格 A1:13

然后,把你要显示的数字写成上标格式,即:

单元格 B1:3

然后,使用此函数创建最终输出。

单元格 C1:=A1&VLOOKUP(B1,Sheet2!$A$1:$B$20,2,FALSE)

试试看 =CONCATENATE("13";CHAR(178))

通过udf使用上标数字

从0到9的上标数字在不同的unicode部分有代码值。因此使用下面的 user defined function (udf) 可以得到 each digit09 作为上标字符,无需一次又一次地检测和记忆每个代码值。

十六进制和十进制代码注释在下面的函数中:

Function sup(ByVal digit As Long)
Dim n As Long
Select Case digit
    Case 0: n = &H2070         ' dec 8304
    Case 1: n = &HB9           ' dec 185
    Case 2: n = &HB2           ' dec 178
    Case 3: n = &HB3           ' dec 179
    Case Else                  ' <super> 4 .. 9
        n = &H2074 + digit - 4 ' dec 8308 .. 8313
End Select
sup = ChrW(n)
End Function

一些例子(~~>输出

    ="x" & sup(3) 
    =CONCAT("x",sup(3))
    =CONCAT("x",sup(Sheet1!A2))   ' assuming a digit value of 3 in Sheet1!A2          

或在 VBA 作业中,例如

Sub ExampleCall()
Dim i As Long
For i = 0 To 9
    Sheet1.Range("A2").Offset(i).Value = "x" & sup(i)
Next
End Sub