【问题标题】:Grouping rows by area codes按区号分组行
【发布时间】:2015-09-28 10:26:26
【问题描述】:

我有一张我的公司向其运送产品的客户表。问题是这些客户需要按他们的区号分类,以便将产品发送到适当的运输公司(我们有两家合作公司运送到该国的某些地区)。每家公司都向我们发送了他们可以运送到的区号列表,我需要将 Excel 表分成两张表,每张都包含具有与各自公司兼容的区号的客户。

我尝试使用 VLOOKUP 函数解决此问题,但它仅适用于单个行,我需要一个解决方案来查找包含指定区号组中的数字的所有行。

另一种方法是 IF 函数,它将 True 或 False(每个公司一个 IF 函数)值放在新列中,然后我可以按该值排序,并将数据复制到新工作表中。这种方法可行,但 IF 函数会非常长且难以控制。

您能提出解决此问题的方法吗?

编辑以合并通过评论提供的详细信息:

目前我有大约 5,000 行,但将来可能会更多,尽管我怀疑超过 10,000 行。

【问题讨论】:

  • Index Match? Pivot Table?过滤表?一点自定义 VBA?你有没有尝试过这些事情?不了解数据,很难看出问题有多大。
  • 数据应该不重要,它包含客户的个人数据,其中一列包含区号。我需要找到区域代码列的值在一定范围内存在的所有行
  • 如果您有 50 行数据或一千或一百万行,则解决方案会有所不同。
  • 在这种情况下有 5000 行,未来可能会更多,但我认为每张纸不会超过 10 000 行
  • 除非你是专门追求代码解决方案,否则这个问题不属于这里。应该改为在 SuperUser 处询问。如果没有数据样本和预期结果,很难推荐一种方法。不过,我有一种感觉,它可以通过排序和动态范围来实现。我会将其标记为移动到它所属的超级用户。

标签: excel excel-formula excel-2007 vlookup worksheet-function


【解决方案1】:

VLOOKUP 看起来很有前途,C2 中的=VLOOKUP($B2,F:G,1,0) 根据需要上下复制,布局如下:

这并不像您所说的那样进行分组(但您真的需要吗?),因为似乎某些地点​​可能由两个托运人提供服务。您可以通过标记那些都可行的行来解决此问题,然后在根据需要转移范围之前通过排序分成三组(仅限 Shipper1、仅限 Shipper2、两者)。

根据 OP 的评论进行编辑

如果您可以确定托运人之间没有重叠,则使用此公式的单个列(例如E2copyed down)可能更可取:

=IF(ISERROR(MATCH(B2,F:F,0)>0),"Shipper2","Shipper1")  

并且不会经常显示#N/A。 (这假设没有区域超出两个托运人的范围。)

【讨论】:

  • 嗯,是否可以查看VLOOKUP函数的结果,如果返回值,IF函数应该写“Shipper1”,如果返回#N/A,应该写“托运人 2"。这可能吗,我将如何在 IF 函数中定义 #N/A 值?
  • 没有重叠,因为我们得到了一个公司的区号,其他的都是其他的(也就是说Shipper1只能派出特定的区号,Shipper2可以派出所有的,但我们用他)仅适用于 Shipper1 无法发货的产品)。感谢您的回答,我会尝试实现它,看看它是否有效
  • 我完全理解,你的回答帮助了我(我刚刚完成了分离,使用你的方法)。我知道我没有向您提供太多信息,但我们对保留客户的私人信息有非常严格的规定,所以我必须尽我所能描述,而不使用我正在使用的数据。无论如何,谢谢你的回答,它解决了我的问题,为我省去了很多麻烦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-06
  • 2021-02-05
  • 1970-01-01
相关资源
最近更新 更多