排序列表时保留单元格地址

时间:2009-05-29 16:43:01

标签: excel

这是我需要的简化版本。从本质上讲,我们有一个组件列表及其状态(想象一下它们已经过测试)。组分BBB具有两个子组分,BBB1和BBB2。我希望他们的状态反映BBB组件'parent'的状态。很容易完成,除了列表很长,我需要保留选项按我的意愿排序。如果我使用一个简单的单元格引用“= B3”,那么一旦列表被排序,这就无效了。同样,命名范围为B3;命名范围地址是静态的,并且在列表排序时不会动态更改。

可以通过在某个不在排序区域的某个地方拥有'静态'BBB状态来解决这个问题,但这不太优雅,而且我不喜欢不优雅!

有什么想法吗?

http://FileHost.JustFreeSpace.Com/158complist.xls

6 个答案:

答案 0 :(得分:1)

我不完全确定你的使用和需求,但试试这个小公式:

=ADDRESS(MATCH("BBB",A:A,0),1)

它将返回BBB所在的单元格地址。 如果删除公式的ADDRESS部分,它将返回行号。

也可以修改它以在“状态”列中提取值。

如果您将此公式放在行BBB1&行的“状态”列中BBB2,然后它会在BBB改变时更新:

=INDEX(A:C,MATCH(LEFT(A2,3),A:A,0),2)

让我知道,如果我只是温暖,或者我得到它。

答案 1 :(得分:0)

也许VLOOKUP工作表功能可以满足您的需求?见http://office.microsoft.com/en-us/excel/HP052093351033.aspx

答案 2 :(得分:0)

有一个非常简单的解决方案。刚刚使用了绝对参考,例如= $ B3或= B $ 3或= $ B $ 3

  

如果我使用“= B3”的简单单元格引用,则在对列表进行排序后,这将无效。

排序不会使这些绝对引用无效。

答案 3 :(得分:0)

如果您只是使用= B3,那么在排序时,Excel会在您排序时自行更新,只要您不使用VBA排序。如果你想在那个单元格上保留一个句柄,你可能需要再次手动找到它,或者在你移动它时随时查看它的位置。

答案 4 :(得分:0)

对于同一行中的引用,请使用相对引用。 (这不是你的问题。)

对于对其他行的引用,如果可以为每行标识唯一键,请使用VLOOKUP(使用FALSE作为最后一个参数)。如果没有自然键,则构建一个代理并确保它是并且仍然是唯一的。 [我显示在表头中使用的下一个值,并使用条件格式来突出显示非唯一的。例如,如果插入复制的行,则会很容易中断。]

绝对引用不起作用。它们保留了确切的单元格引用 - 但是在排序后,它现在指向分配到该位置的任何值。我相信这是Excel中的一个错误,无论是在代码中还是在规范中。人们期望的行为是元组中的值保持不变,即使该元组通过排序移动也是如此。对于绝对引用,具有绝对引用的单元格中的值会发生变化,即使 - 或者更确切地说是因为 - 引用本身保持不变。

答案 5 :(得分:0)

如果单元格引用是另一个ROW中的单元格,则即使尽管使用$符号锁定单元格引用,它也会在排序后发生更改。