excel 计算数据集中重现次数的公式[已关闭]

x6h2sr28  于 2023-10-22  发布在  其他
关注(0)|答案(6)|浏览(141)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

20天前关闭。
社区在19天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question
我有一个日期和位置的数据集,可以作为一年中每一天的位置记录。
eg
| 日期|位置|
| --|--|
| 23年1月1日|伦敦|
| 2019年02月01日|伦敦|
| 23年3月1日|布里斯托|
| 2019 - 04 - 01|伦敦|
| 2019 - 05 - 01|曼彻斯特|
| 2019年01月06日|伦敦|
| 2019 - 01 - 07|伦敦|
| 2018年01月08日|布里斯托|
我想帮助一个公式,填充第三列,计数独立访问每个地方。
eg
| 日期|位置|位置编号|
| --|--|--|
| 23年1月1日|伦敦|伦敦1|
| 2019年02月01日|伦敦|伦敦1|
| 23年3月1日|布里斯托|布里斯托尔1|
| 2019 - 04 - 01|伦敦|伦敦2|
| 2019 - 05 - 01|曼彻斯特|曼彻斯特1|
| 2019年01月06日|伦敦|伦敦3|
| 2019 - 01 - 07|伦敦|伦敦3|
| 2018年01月08日|布里斯托|布里斯托尔2|
我怎么能用一个公式来写这个(很高兴创建额外的列,不可能写进一个公式)?
我不知道从何说起。理想情况下,我想避免使用数组。

qnakjoqk

qnakjoqk1#

好吧,用一个公式来解释怎么样:

B2&COUNTIF(A$2:A2,A2)*COUNTIF($B$2:$B2,B2)

nafvub8i

nafvub8i2#

这里有一个解决方案(表)。

=ARRAYFORMULA(
   LET(l,B2:B,
       r,ROW(l),
       u,IF(l=OFFSET(l,-1,,ROWS(l)),,l),
       IF(l="",,l&SCAN(,COUNTIFS(u,u,r,"<="&r),LAMBDA(a,v,IF(v,v,a))))))

zd287kbt

zd287kbt3#

=LET(
    φ,B2:B9,
    φ&TAKE(
        SORT(UNIQUE(REDUCE("",φ,LAMBDA(δ,ε,
        LET(τ,FILTER(SEQUENCE(ROWS(φ)),φ=ε),
        DROP(VSTACK(δ,HSTACK(τ,SCAN(0,τ,
        LAMBDA(κ,λ,IF(λ=1,1,IF(INDEX(φ,λ)=INDEX(φ,λ-1),κ,κ+1)))))),1)))))),,-1
    )
)
rm5edbpk

rm5edbpk4#

  • 这里有一种方法(用于Gsheets);这将进入Cell_C2,然后**向下拖动 *
=map(B2,lambda(Σ,if(Σ="",,Σ&countif(map(B$2:Σ,lambda(Λ,if(Λ=iferror(offset(Λ,-1,)),,Λ))),Σ))))

    • 如果您希望使用上述公式array-style,请将开始的B2部分替换为B2:B *

avkwfej4

avkwfej45#

我宁愿在一个问题下有正确的答案,所以我删除了我以前的一个(不混淆未来的人有同样的问题),正确地说,作为错误的乔斯/OP。我的第二个答案应该是对它的改进:
Excel:
=LET(lOccur,LOOKUP(1,0/FIND(B2,$C$1:C1),$C$1:C1),lRIGHT,--RIGHT(lOccur,LEN(lOccur)-LEN(B2)),IF(B2=B1,C1,IF(ISERROR(lOccur),B2 &“1”,B2 & lRIGHT +1)

不知道如何使这一次泄漏公式虽然,我得到了错误的结果或循环引用..

snvhrwxg

snvhrwxg6#

另一种解决方案(板材)

=MAP(B2:B,LAMBDA(_,IF(_="",,_&COUNTIFS(B2:_,_,MAP(B2:_,LAMBDA(_,N(_=OFFSET(_,-1,)))),0))))

相关问题