我希望这不是一个简单的问题,但我正在创建一个Excel电子表格,用于A列中即将到来的用餐列表参与者,以及F栏中的特殊饮食要求。
是否有可能创建一个公式,允许我有一个列出具有特殊饮食要求的人的单元格?
即。如果我在F栏中输入Persons 1, 4, 6, 18, 34, 48, 56, etc....
我是否可以创建一个单元格来创建具有特殊饮食要求的人员名单? (+总计这些数量的单元格也会很棒)
答案 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)