我要你找点乐子。我需要一些特别的东西。
首先,我必须解释一下我在做什么。我对零售店的产品价格使用了一个简单的编码,因为我不想让人们知道自己的真实价格。所以我把原来的数字改为另一个,减去每个数字的9。通常,我会为每一种产品手工写下所有的价格。
所以..。例如,数字10应该是89。(9-1 = 8)和(9-0 = 9)其他例子:
最后,我在编码价格的开头放了2个数字9 (9),以迷惑那些认为这个数字可能是价格的人。
所以我之前用过的例子如下:
记住,在实际价格之前,我需要2(2)个9。真正的价格从来都不是从0开始的,所以,最初的九元只是为了迷惑人们。
好的。所以,既然你明白了,第二部分就来了。我有一个excel,我的产品添加了数百种,价格,描述等。我决定现在是时候使用打印机,并开始打印这些信息从excel。我有一个软件这样做,但首先,我需要有成文的价格在excel中也。
有趣的部分开始时,我想转换真实的价格,已经写在我的excel文档自动成为一个新的列。因此,这样,我不必再键入所有的价格,以成文的形式,为新旧项目,我在未来添加。
有人能帮我吗?有可能吗?
我尝试使用=A1-9999,但它只适用于2个字符号。因为如果实际价格是5,我将得到3个9:9994(代码)。如果价格是234,我只会得到199765(代码)。这是一个条件,我首先需要有两个九。
非常感谢您的进阶!
发布于 2016-05-14 03:53:34
我将使用辅助单元格,但如果需要,可以将其全部转储到一个单元格中,因为您只处理4个字符。
就本例而言,我假设您最初的价目表是从B11开始的。
=IFERROR(9-MID($B11,COLUMN(A1),1),"")把它放在D11中,再复制三次到右边,这样就可以从D11到G11了。这个公式从你的价格中去掉一个字符,并从9个中减去那个字符。当你进入下一列时,它会重复自己。如果您没有那么多字符,它将返回"“。
在C11中,您将使用以下公式根据相邻的4列构建数字:
="99"&D11&E11&F11&G11它将99放在前面,然后从相邻的4列中添加数字。
选择单元格C11到G11,并在需要的范围内向下复制并粘贴到数据列旁边。
另一种更简洁的方法是:
=REPT(9,LEN(B11)+2)-B11发布于 2016-05-14 04:11:01
虽然你已经要求公式,我建议VBA程序,在我看来非常方便。您必须打开VBE并插入一个模块并复制程序。更改代码行,以满足您对工作表等的要求。
Sub NumberCode()
Dim c As Range
Dim LR As Integer
Dim numProbs As Long
Dim sht As Worksheet
Dim s As Integer
Dim v As Long
Dim v1 As Long
Set sht = Worksheets("Sheet1") ' change as per yr requirement
numProbs = 0
LR = sht.Cells(Rows.Count, "A").End(xlUp).Row
For Each c In sht.Range("A1:A" & LR).Cells
s = Len(c)
v = c.Value
v1 = 99
For s = 1 To Len(c)
v1 = v1 & (9 - Mid(c, s, 1))
Next
c.Offset(0, 1).Value = v1
v1 = 99
numProbs = numProbs + 1
Next
MsgBox "Number coding finished"
End Sub结果样本表附后。

发布于 2016-05-14 12:23:02
也许我错过了什么,尽管很简单:
=REPT(9,2+LEN(A1))-A1
对我来说很好。
问候
https://stackoverflow.com/questions/37221746
复制相似问题