Excel 根据条件自动创建数字

问题描述 投票:0回答:1

enter image description here我的 Excel 电子表格中有三列。第一列是我试图根据 B 列和 C 列创建正确的数值的列。A 列中的数字的格式为 1.1、1.2、2.1、2.2。第一个数字基于 B 列值的查找表。这些数字是静态的。第二个数字基于 C 列和 B 列中的值。例如,如果 B 列是 A,C 列是 a,则该数字应为 1.1 。我的公式一开始似乎有效,但如果有任何重复项,我希望 A 列的数字与重复项相匹配。在我的示例中,我希望 A7 = 2.1、A8 = 3.1、A10 = 6.1、A11 - 1.2 和 A12 = 1.4。这是我使用的公式,其中 E 列和 F 列作为查找表。

=IF(B2<>"", VLOOKUP([@Area],'文档请求列表'!$E$1:$F$15, 2, FALSE) & "." & COUNTIF($B$2:B2, B2) ,“”)

我也尝试过Unique和Sequence。我不知道如何使第二个数字依赖于整个列,而不仅仅是其上方的单元格。嗯,我想这是我的问题。

在此图中,A 列是我想要的数字。 enter image description here

excel sequence countif
1个回答
0
投票

下面是您可以在单元格 A2 中替换的公式。解释如下。

=CODE($B2)-64&"."&
LET(category,UNIQUE(FILTER($C$2:$C$12,$B$2:$B$12=B2)),
seq,SEQUENCE(COUNTA(category)),
array,HSTACK(category,seq),
VLOOKUP(C2,array,2,FALSE))

我假设查找表中的字母对应于字母表中的第 n 个字母,即 A = 1,B = 2,...和 Z = 26。如果这个假设是正确的,而不是使用 a查表,使用

CODE
- 64 就可以得到对应的数字。在 ASCII 中,大写字母 A = 65,所以减去 64,就得到 A = 1。

LET 允许您通过为公式的每个部分提供一个可以引用一次或多次的变量名称来构建复杂的公式。

UNIQUE
FILTER
公式一起为每个
Category
获得一个唯一的
Area
字母列表。 然后我创建一个数字序列并使用
HSTACK
合并它们,创建本质上是一个查找表,我将其命名为
array

然后我使用 VLOOKUP

array
来获取结果中的第二个数字。

© www.soinside.com 2019 - 2024. All rights reserved.