在Excel中重命名单元格

在Excel中重命名单元格,excel,rename,Excel,Rename,我不知道这是否可行,但有人建议我在这里和最可能的地方发布答案 我在excel中有四列,如下所示 A: all product id's B: reference No. C: selected product id's D: product codes. 我想要excel做的是在A列中搜索C列中的id,如果有匹配项,请将其重命名为D列中搜索到的D列中的相应行。我无法轻松使用vlookup,因为A列中的产品id可能重复多达8次 我希望这是有道理的,我会尽力回答所有我能回答的问题。除了基本知识外,

我不知道这是否可行,但有人建议我在这里和最可能的地方发布答案

我在excel中有四列,如下所示

A: all product id's
B: reference No.
C: selected product id's
D: product codes.
我想要excel做的是在A列中搜索C列中的id,如果有匹配项,请将其重命名为D列中搜索到的D列中的相应行。我无法轻松使用vlookup,因为A列中的产品id可能重复多达8次

我希望这是有道理的,我会尽力回答所有我能回答的问题。除了基本知识外,我对excel一无所知,因此如果有人能对此有所了解,我将不胜感激。

试试这个:

a
之前插入新列。所以现在你所有的列都上移了一位,也就是说你的
A
现在是
B
等等

现在位于单元格
A1
(新插入的
A1
,而不是原来的A1,现在是
B1

其中
1000
是最后一行的内容。然后向下拖动公式

您尚未指定如果ID位于列
A
中,而不是列
C
中,会发生什么情况。如果您希望它保持在Col
A
中的状态,请使用以下公式:

=IF(ISNA(VLOOKUP(B1, $D$1:$E$1000, 2, 0)), B1, VLOOKUP(B1, $D$1:$E$1000, 2, 0))

这应该可以做到:

Sub test()

LastRowA = Cells(Rows.Count, "A").End(xlUp).Row
LastRowC = Cells(Rows.Count, "C").End(xlUp).Row

For i = 1 To LastRowA
    For j = 1 To LastRowC
        If Range("A" & i).Value = Range("C" & j).Value Then
            Range("D" & i).Value = Range("C" & j).Address(False, False)
        End If
    Next j
Next i

End Sub

那么你的数据是这样的?我不明白你期望的结果是什么

A  B    C  D    expected result
1  101  1  201  ?
1  102  4  204
2  103
3  104
3  105
4  106

这个宏是非常不必要的。如果这确实给出了正确的答案(与我对问题的解释非常不同),那么你可以把这个公式放在D列:=MATCH(A1,$C$1:$C$1000,0)或=“C”&MATCH(A2,$C$1:$C$8,0),如果你也想要字母“C”。@Dan,你测试过了吗?它将检查A1中的值,将其与C中的值匹配,在D1中,您将得到C中的值位置。我做了测试,是的。两者都给了我同样的结果。你会得到不同的结果吗?我的公式与您描述的完全相同,match返回数组中的位置,前提是数组在第1行开始的位置与行号相同。但是我看到我在第二个公式中用了A2而不是A1,我的错。当然我得到了正确的结果,你怀疑我的代码吗?;)啊,没问题,我用的是宏而不是公式,这是唯一的区别。我并不怀疑你的代码,只是说公式解决方案产生了相同的结果,并对你问我是否在没有自己测试的情况下测试了我的代码表示惊讶。仅使用工作表公式的解决方案优于宏解决方案,原因有很多,例如使工作表更具表现力(更易于理解)、能够撤消、动态响应工作表更改,而宏必须在任何更改后重新运行。我刚刚指出,当一个完全可行的公式解决方案可用时,不应考虑宏观解决方案。谢谢Dan,它适用于第一列,但其他人只是在其中提出了N/a。任何想法都可以。我已经找到了原因,但不知道如何解决它。当我向下复制它时,它将D1:E1000更改为D2:E1001,并且忽略了查看上面的单元格。我需要D1:E1000保持原样,复制时数字不会改变。标记应保持不变的范围,如下所示:
$D$1:$E$1000
。现在它在其他地方复制时不会更改。Dan,我通过将D1更改为D,然后向下拖动它,使用“查找并替换”将D更改为D1,对其进行排序。谢谢你的帮助-这是一个真正的救命恩人。很高兴它有帮助,如果它是正确的,请将它标记为已解决。同样在这种情况下,
$D$1:$E$1000
可能比仅引用enitre列更不合适,但通常情况下不合适。如果计划使用Excel,即使是最简单的任务,也需要了解相对单元格引用和绝对引用之间的区别。这是设计excel公式的基本原则。仔细阅读本教程:我急切地想读这篇文章,它是基本的东西!在E列中也会有数字。如果B匹配D列中的数字,a列将显示E列中与D列匹配的同一行中的数字。
A  B    C  D    expected result
1  101  1  201  ?
1  102  4  204
2  103
3  104
3  105
4  106