【问题标题】:Excel Data validation won't sort based on column valueExcel 数据验证不会根据列值排序
【发布时间】:2017-10-16 06:05:46
【问题描述】:

我有一个简单的缺勤计划文件,在工作表 DATA 列 B 中有一些同事的名字(在这种情况下是字母..)在工作表 JAN 列 C 中这些名字再次出现(如果在工作表中选择了 1 DATA 列 C) 但这不是重点。

问题:有时必须对这些名称进行排序(当出现新名称时),但工作表 JAN 中的 DATA VALIDATION 列不与它们排序(请参见行中的颜色) 我不想使用 VBA,因为我不知道它,所以希望有一个公式解决方案(在数据验证弹出窗口中使用公式?带有 INDIRECT 的东西?)

希望有人能帮我解决这个问题。

TEST FILE

如下图,左边是 DATA SHEET,里面填写了一些名字,右边是 JAN SHEET,这些名字用 IF 公式显示,当我们在 DATA SHEET 中对名字进行排序时,它们会也在 JAN SHEET 中排序,但是从 D 到 H 列的 JAN SHEET 中的数据验证并没有随之改变。我不想用 VBA 解决它,因为我不知道它,所以想用公式修复它,但找不到解决方案.. 阅读一些可以将公式添加到数据验证列表弹出窗口的内容(间接...)。

【问题讨论】:

  • 您可以在这里发布一些数据(或者至少是屏幕截图),而不是链接到文件?不清楚您要做什么 - 对表格进行排序,但其中一列未与其他信息一起排序?

标签: excel validation sorting excel-formula


【解决方案1】:

在 Jan 表中,您使用公式引用数据表中的单元格,然后您有公式并在单元格引用旁边的列中输入值。如果数据表中的数据发生更改并重新排序,则 Jan D 列中的单元格将显示新的排序顺序,但您需要了解这不会影响右侧列中的所有数据。您只对 DATA 表进行了排序,但对 Jan 表没有排序。

这是工作簿数据架构中的一个缺陷。不要将数据表的单元格引用用于名称和 D 到 J 中的公式。D 到 J 列中的单元格具有引用数据表的公式,以及数据验证下拉菜单。这是一件危险的事情。如果数据表的排序顺序发生变化,仍然使用公式的单元格将引用行,但从列表中选择值的单元格可能与正确的名称不匹配,正如您所发现的那样。

我建议您将名称从 DATA 复制并粘贴到 Jan。然后使用基于 Vlookup 计算值的公式,并将 Name 作为查找值。

如果将新名称添加到 DATA 表中,您需要手动将该名称复制并粘贴到 Jan 表中。

现在您可以按 C 列对 Jan 表进行排序。公式将显示正确的值,因为它们会根据名称进行查找。如果在排序之前选择了整个范围,则具有从数据验证中选择的值的单元格将随排序一起移动。

【讨论】:

  • Teylyn,是的,我明白你的意思,但在这种情况下,我想防止这种情况发生,我不想每次有人新开始时都复制粘贴,然后我必须复制粘贴这个人每个月再次手动。这就是为什么我试图只用一张显示所有信息的工作表来解决问题,而 monts 将根据 DATA 中的 1 和 0 进行查找,这样我只会编辑 1 张工作表而不是 13..
  • 重新考虑您的数据架构,因为引用不起作用。或创建宏,即选择纸张时,将从数据列自动复制名称。这并不难做到。引用数据表不起作用,所以忘记那个方法。
  • 我想避免使用宏和 vba,我对 excel 有一定的了解,但我的同事中很少有人没有……所以不想让它保持简单和动态。我一直想知道为什么我们不能对依赖于另一列/行的值的数据验证行进行排序,在数据验证弹出窗口中,我们可以将公式添加到我们的列表源中,所以..也许我想太多了:)
  • 因为你所做的不是排序。您仅更改 DATA 表上的排序顺序。 Jan 表上具有引用数据表的公式的单元格将进行调整。但是公式被覆盖的单元格不会改变,因为它们不再与原始数据行有任何联系。请理解这种方法行不通。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 2019-04-01
  • 2013-11-12
  • 1970-01-01
  • 2013-03-18
相关资源
最近更新 更多