【问题标题】:force excel cells to follow position of another cell强制excel单元格跟随另一个单元格的位置
【发布时间】:2021-05-08 14:10:05
【问题描述】:

我有两个选项卡,在第一个选项卡中,用户输入了一些数据,然后在第二个选项卡中,前五列填充了第一个选项卡中的信息,这些数据的位置是相对于第一个选项卡中的数据 例如,如果用户在第一个选项卡中填充第一行和第十行,则仅填充第二个选项卡的第一行和第十行。 事情是在电子表格的第五列之后,用户可以放置更多关于数据的信息(如 cmets 或其他),并且这些单元格是由用户硬编码的,所以有人碰巧在第一个选项卡的五列中执行排序操作在第二个选项卡中也会改变位置,但之后的另一列不会改变,留下最终数据。 有没有办法强制第五列之后的单元格只“跟随”前五列中数据的位置?

【问题讨论】:

  • Excel 将在排序时保持行不变。但是通过指定特定范围,您可以强制 Excel 将某些单元格保留在其原始位置。这是由排序决定的。在另一张纸上,顺序由参考方法确定。如果某些单元格遵循排序而其他单元格不遵循,则您必须使用不同的方法。对所有单元格应用相同的方法,选择您喜欢的那个。
  • 如果将 cmets 添加到第二张纸上,则没有简单的方法可以强制它们遵循第一张纸上的排序。您可能设计的任何方法都将 (a) 涉及 VBA,并且 (b) 需要一个系统,通过该系统将 cmets 链接到特定条目,以便在拆开时可以将它们归还给它们的“所有者”。

标签: excel vba exception


【解决方案1】:

在尝试避免使用 VBA 时,如果您可以添加一些技术专栏,您可以实现这一点。

表 1:

  1. 将 sheet1 中的源更改为表格格式(这将确保在用户添加数据时将公式复制下来;
  2. 添加一个技术列(可以隐藏,从工作表 2 中的用户输入列复制粘贴链接),例如Sheet1!B:B;

表 2:

  1. 添加 2 列: => 用户输入(未排序)例如col.D,(这是用户可以编辑的列) => 用户输入已排序(用户不应编辑此列)
  2. 使用 MATCH(D3;Sheet1!B:B;0) 添加技术列(可以隐藏)
  3. 在“用户输入排序”中添加:INDEX(D:D;MATCH(ROW();G:G;0);1)

当工作表 1 被排序时,tech 列也将被排序,然后我们使用此信息找到原始评论,定义它的新行 nr 并将其显示在排序的列中。在第 2 页上。如果 2 个 cmets 可以完全相同,这将不起作用!

注意! 为了使公式起作用,如果您使用的是美国 Excel(我使用的是欧盟),则需要将我的半逗号更改为逗号。

祝你好运,

塞西

【讨论】: