Jef*_*son 20 microsoft-excel-2007 worksheet-function microsoft-excel microsoft-excel-2010
我的数据包含一列房间号。每个房间号的前2位数字是房间所在的楼层号。=LEFT 函数适用于不以零开头的数据。=LEFT 函数不适用于以零开头的数据。
如何让公式在第一个数字为零时不忽略它?
Room Number Formula Floor Number
1214 =LEFT (A2, 2) 12
2354 =LEFT (A2, 2) 23
1876 =LEFT (A2, 2) 18
1567 =LEFT (A2, 2) 15
0403 =LEFT (A2, 2) 40* (should be level 04)
1918 =LEFT (A2, 2) 19
0910 =LEFT (A2, 2) 91* (should be level 09)
Run Code Online (Sandbox Code Playgroud)
tey*_*lyn 35
如果所有房间号都是4位数字,而4位数字是通过自定义格式“0000”格式化小于1000的数字来实现的,那么你可以使用
=LEFT(TEXT(A1,"0000"),2)
Run Code Online (Sandbox Code Playgroud)
编辑:FWIW,如果值为文本,这种方法也适用。
Mát*_*ász 26
似乎您将房间号存储为数字,这种情况下 LEFT 不是最佳选择,请改用 INT:
=INT(A2/100)
要保留前导零(04
而不是4
),您需要使用“类型”将单元格的数字格式设置为“自定义”:00
感谢@fixer1234 的评论!
这听起来像是单元格格式问题。确保您的Room Number
列格式为Text而不是General或Number。
这是来自 LibreOffice,但只要单元格格式为文本,Excel 的行为就相同。
根据您的评论,您只是自定义格式化值以显示前导 0,您可以使用此公式检查房间名称中是否有前导 0,如果没有,则添加一个:
=IF(LEFT(A1,1)=0,LEFT(A1,2),CONCAT("0",LEFT(A1,1)))
迈克尔·弗兰克明白发生了什么。自定义格式“0000”根据需要添加前导零以显示四位数字,但它不会改变单元格中的内容。如果将该格式应用于102
,单元格将显示0102
,但如果使用 LEN() 测试字符数,则将显示三个。您可以将此用于具有简短公式的解决方案。
在 A1 中,我得到了 value 102
。在 A2 中是相同的值,自定义格式的0000
. B2中的公式为:
=LEFT(REPT("0",4-LEN(A2))&A2,2)
Run Code Online (Sandbox Code Playgroud)
这从 4 中减去 A2 中值的实际长度,然后创建前导零的结果计数并将其连接到 A2 中的实际值。然后取结果的左边两个字符。
第 3 行显示了当 A 列中的值实际上是四个字符时的结果。
归档时间: |
|
查看次数: |
8663 次 |
最近记录: |