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 digit 从 0 到 9 作为上标字符,无需一次又一次地检测和记忆每个代码值。
十六进制和十进制代码注释在下面的函数中:
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³
)
="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
我想在 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 digit 从 0 到 9 作为上标字符,无需一次又一次地检测和记忆每个代码值。
十六进制和十进制代码注释在下面的函数中:
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³
)
="x" & sup(3)
=CONCAT("x",sup(3))
=CONCAT("x",sup(Sheet1!A2)) ' assuming a digit value of 3 in Sheet1!A2
Sub ExampleCall()
Dim i As Long
For i = 0 To 9
Sheet1.Range("A2").Offset(i).Value = "x" & sup(i)
Next
End Sub