如何列出需要特殊饮食要求的人?

时间:2015-10-17 19:55:33

标签: excel

我希望这不是一个简单的问题,但我正在创建一个Excel电子表格,用于A列中即将到来的用餐列表参与者,以及F栏中的特殊饮食要求。

是否有可能创建一个公式,允许我有一个列出具有特殊饮食要求的人的单元格?

即。如果我在F栏中输入Persons 1, 4, 6, 18, 34, 48, 56, etc....我是否可以创建一个单元格来创建具有特殊饮食要求的人员名单? (+总计这些数量的单元格也会很棒)

2 个答案:

答案 0 :(得分:1)

显示有特殊饮食要求的总人数的公式是:

=SUMPRODUCT(--(LEN(F2:F999)>0))

以上假设单元格F1中有一个列标题。

报告一个单元格中的人员列表并不容易......

假设您将上述公式放入单元格Z1中,因此Z1当前显示总计。以下公式将列出名称,但它使用Z1。因此,如果您将上述公式放在其他地方(很可能),那么您必须更改此公式中的Z1:

=IF(Z1>0,INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),1)),"")    &    IF(Z1>1,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),2)),"")    &    IF(Z1>2,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),3)),"")   &    IF(Z1>3,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),4)),"")   &    IF(Z1>4,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),5)),"")   &    IF(Z1>5,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),6)),"")   &    IF(Z1>6,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),7)),"")   &    IF(Z1>7,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),8)),"")   &    IF(Z1>8,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),9)),"")   &    IF(Z1>9,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),10)),"")

它必须很长,所以将它复制并粘贴到一个单元格中,也许是Z2。

现在确认公式。

  

此第二个公式是一个数组公式,必须使用 Ctrl + Shift + 输入确认。

目前设置报告最多具有特殊饮食要求的TEN人员在您输入的单元格中用逗号分隔。

可以轻松扩展。请注意整个公式中的大差距。您可以看到十个谨慎的公式与&符号(&)连接运算符拼接在一起。要扩展它以容纳超过十个有特殊饮食要求的人,只需复制最后一段并在新段中编辑两个数字。

我已重新格式化下面的第二个公式。使用这种格式,可以更容易地看到模式:

=IF(Z1>0,     INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),1)),"")&
 IF(Z1>1,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),2)),"")&
 IF(Z1>2,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),3)),"")&
 IF(Z1>3,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),4)),"")&
 IF(Z1>4,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),5)),"")&
 IF(Z1>5,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),6)),"")&
 IF(Z1>6,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),7)),"")&
 IF(Z1>7,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),8)),"")&
 IF(Z1>8,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),9)),"")&
 IF(Z1>9,", "&INDEX(REPT(A2:A999,LEN(F2:F999)>0),LARGE(ROW(1:998)*(LEN(F2:F999)>0),10)),"")

Excel不擅长将这样的列表返回到一个单元格中,这就是公式太长的原因。

答案 1 :(得分:1)

假设我们有以下数据:

enter image description here

要列出需要的人,例如低盐,请在列 F 上设置自动筛选

enter image description here

要计算低盐人数,请使用:

$ oozie job -oozie oozie_URL -log job_ID | tail -n 10

这不能在单个单元格中获取名称,但它确实得到了名称。