有没有办法在列" B"中获得自动编号?没有VBA的下图中给出的形式? (密度为" A"和" B"是任意的;唯一的规则是它可以是两个或多个A'连续',和" A"总是先行。)
A
B 1
B 2
B 3
A
B 1
B 2
A
B 1
B 2
B 3
如果需要,可以使用一些辅助计算(列)。
P.S。任务的扩展名为here。
答案 0 :(得分:2)
嗨Garej:根据您提供的示例,您可以使用" IF-THEN" excel中的公式。只需将您的字母放在一个空白的Excel文档中,将公式粘贴到单元格B2中,您应该很好。你需要hardcode =" A"在公式中是什么" A"是。这是公式:
=IF(A2="A","",IF(A2=A1,B1+1,1))
如果您不想对=" A"进行硬编码,您也可以从以下位置更改开头:
A2="A"
到
A2=$A$1
这将允许您拥有动态值,而不是" A"所以完整的代码将是....
=IF(A2=$A$1,"",IF(A2=A1,B1+1,1))
此代码背后的逻辑如下: 看看当前行中的字母...... 如果当前行中的字母是" A" [或匹配$ a $ 1的内容],然后将数字留空。 如果当前行中的字母与上一行中的字母相同,则在上面的行中添加一个字母。 如果当前行中的字母与上面的行不同[并且不是" A"或$ A $ 1],然后从1开始。
答案 1 :(得分:1)
将以下内容从单元格B2中开始(B1可以硬编码为1):
=IF(A2="A","",if(A1="A",1,B1+1))
这只是查看前一行 - 如果前一行中的A列表示" A",那么我们知道当前行是从1开始的新行。如果它不是" A"在上面的行中,我们知道这是当前计数的延续。它首先检查当前行 - 如果当前行是" A",我们知道我们希望这一行是空白的。