如何根据某种完成键根据其他列值设置值?
How do I set value depending on other columns value, according to some kind of completion key?
我正在使用 Google 表格来大致了解我的银行交易。
我想将每笔交易都归入一个类别,例如杂货、交通……
我使用这个简短的脚本解决了这个问题:
=IFS(REGEXMATCH(A1;$K); $L;REGEXMATCH(A1;$K);$L;REGEXMATCH(A1;$K);$L;true;"other")
A列是我要查看的,所有交易,K是我要查看的店铺名称,例如“shopname1”,L是我要交易的类别对于这家店。
现在,这工作得很好,但是这个商店和类别列表现在只有 3 行长,因为我正在测试它,但是因为我将使用它,它会很长,这意味着我的 IFS 语句也会很长。这不是非常模块化的 eighter,以备将来更改,所以我想做得更好。
我想知道一种方法,例如让它检查几个列表,每个列表一个。
我希望这是有道理的,并且有人有想法!
您可以试试这个(在 B2
中):
=ARRAYFORMULA(
IF(
A:A = "";;
VLOOKUP(
ROW(A:A);
{
FILTER(ROW(A:A); A:A <> "")\
REGEXREPLACE(
TRIM(
TRANSPOSE(QUERY(
IF(
NOT(REGEXMATCH(
TRANSPOSE(FILTER(A:A; A:A <> ""));
"(?i)" & FILTER(K2:K; K2:K <> "")
));;
FILTER(L2:L; K2:K <> "") & ", "
);;
COUNTA(K2:K)
)) & "other"
);
", other$";
)
};
2;
)
)
)
如果没有匹配,它会设置other,否则它会设置所有匹配的类别,用,
分隔。
我正在使用 Google 表格来大致了解我的银行交易。 我想将每笔交易都归入一个类别,例如杂货、交通…… 我使用这个简短的脚本解决了这个问题:
=IFS(REGEXMATCH(A1;$K); $L;REGEXMATCH(A1;$K);$L;REGEXMATCH(A1;$K);$L;true;"other")
A列是我要查看的,所有交易,K是我要查看的店铺名称,例如“shopname1”,L是我要交易的类别对于这家店。 现在,这工作得很好,但是这个商店和类别列表现在只有 3 行长,因为我正在测试它,但是因为我将使用它,它会很长,这意味着我的 IFS 语句也会很长。这不是非常模块化的 eighter,以备将来更改,所以我想做得更好。 我想知道一种方法,例如让它检查几个列表,每个列表一个。
我希望这是有道理的,并且有人有想法!
您可以试试这个(在 B2
中):
=ARRAYFORMULA(
IF(
A:A = "";;
VLOOKUP(
ROW(A:A);
{
FILTER(ROW(A:A); A:A <> "")\
REGEXREPLACE(
TRIM(
TRANSPOSE(QUERY(
IF(
NOT(REGEXMATCH(
TRANSPOSE(FILTER(A:A; A:A <> ""));
"(?i)" & FILTER(K2:K; K2:K <> "")
));;
FILTER(L2:L; K2:K <> "") & ", "
);;
COUNTA(K2:K)
)) & "other"
);
", other$";
)
};
2;
)
)
)
如果没有匹配,它会设置other,否则它会设置所有匹配的类别,用,
分隔。