Excel 从 A 列:数字和 B 列:项目创建的下拉列表,然后减少选项

Excel drop down list created from col A: number and col B: item, then reducing options

我想列出我篮子里的所有水果,然后把水果送给我的朋友,这样做下拉列表中的选项会自动减少。

A 列:水果数量 B栏:水果 C 列:名称 D 列:下拉列表

例如,我有 1 个凤梨、0 个苹果和 2 个橙子。 当我给第一个朋友送水果时,下拉列表中的选项是"ananas"; "orange"; "orange".

如果我给朋友一个凤梨,那么下拉列表会变成 "orange",其他人会变成 "orange",依此类推。

用Excel可以吗? 如果是这样,是否可以不使用 VBA,使用数据验证和常规公式?

谢谢。

这是可能的,但涉及几个步骤。

我假设水果数量在 A1:A5、水果名称 B1:B5、朋友名称 C1:C5 和篮子列表下拉菜单 selection 在 D1:D5。 我将使用 F1:F5 进行列表计算,G1:G15 将保留下拉列表的篮子列表。

  1. 根据数量和篮子用途,计算每个水果在篮子列表中应该从哪一行开始:
    • F1 =A1-COUNTIF($D:$D,B1).
    • F2 =A2+F1-COUNTIF($D:$D,B2).
    • 复制F2到F3:F5。
  2. 为下拉列表创建购物篮列表:
    • G1:G15 =INDIRECT("B"&COUNTIF($F:$F,"<"&ROW())+1).
  3. D1:D5 创建一个 数据验证 列表:
    • 在源列表中输入 =OFFSET($G:$G,0,0,COUNTIF($G:$G,"<>0"))我假设水果名称中第 5 行下的单元格将为空,因此列表中的其余行将获得值 0,因此列表中的 "<>0" 计数 .

现在,当您 select 从验证列表中选择一个水果时,该列表将相应更新。