我希望你有一些乐趣。我需要具体的东西。
首先,我必须解释一下我的所作所为。我在零售店使用简单的产品价格编码,因为我不希望人们知道自己的实际价格。所以我将原始数字改为另一个,减去每个数字的数字9。 通常我会用每个产品的编码手动记下所有价格。
所以...例如数字10将是89.(9-1 = 8)和(9-0 = 9) 其他例子:
最后,我还在编码价格的开头加上了2个数字9(9),让那些可能认为数字可能是价格的人感到困惑。
所以我之前使用的例子是这样的:
请记住,在实际价格之前我需要2(2)个9。实际价格永远不会从0开始,因此,开头的9只存在只是为了让人迷惑。
确定。那么,既然你明白了,那么第二部分就是这样。 我有一个excel,我添加了数百种产品,价格,描述等。我决定是时候使用打印机并开始从excel打印这些信息。我有一个软件可以做到这一点,但首先我需要在excel中编制成文价格。
当我想将已经写在我的Excel文档中的实际价格转换为AUTOMATICALLY的新列时,有趣的部分就开始了。因此,我不必再为我将来添加的新旧商品以编码形式再次输入所有价格。
有人可以帮我吗?它甚至可能吗?
我尝试使用= A1-9999,但它仅适用于2个字符编号。因为如果实际价格是5,我会得到3个9:9994(代码)。如果价格是234我将只得到1 9 9765(代码)。这是我需要首先获得两个9的条件。
非常感谢您的进步!
答案 0 :(得分:0)
我将使用辅助单元格,但如果你愿意,可以将它全部转储到一个单元格中,因为你只处理4个字符。
出于本示例的目的,我假设您的原始价格表在B11开始。
=IFERROR(9-MID($B11,COLUMN(A1),1),"")
将它放在D11中并再向右复制三次,这样你就可以从D11到G11。该公式从您的价格中删除1个字符,并从9中减去该字符。当您转到下一列时,它会自行重复。如果您没有那么多字符,它将返回“”。
在C11中,您将使用以下公式基于相邻的4列建立您的号码:
="99"&D11&E11&F11&G11
它将99放在前面,然后添加相邻4列中的数字。
选择单元格C11至G11,然后在数据栏旁边复制并粘贴到您需要的位置。
另一种更简洁的方法是:
=REPT(9,LEN(B11)+2)-B11
答案 1 :(得分:0)
虽然您已经要求配方,我建议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
结果样本表附于下面。
答案 2 :(得分:0)
也许我错过了一些东西,尽管只是:
=REPT(9,2+LEN(A1))-A1
对我来说似乎很好。
此致