【发布时间】:2020-05-29 18:53:26
【问题描述】:
我正在尝试创建一个 VLOOKUP,它可以将 COLUMN 编号用于条件和范围起始位置,同时从 COLUMNS 计数中获取索引编号。
我有一个电子表格,我将数据集导入其中进行分析。我在顶部添加了几行,并使用其中一行将特定列标记为包含固定值 - 例如,这些值来自预定义的选择,例如 order_status 将具有 created、submited、fulfilled、paid 的固定值等。
当我将每一个标记为固定时,上面的行会递增地为每一列分配一个数字值。如果我有 16 个固定值,则会有从 1 增加到 16 的列。
在分析表中,我有 16 列用于执行某些分析。它为数据集中的每一行做的第一件事是为数据集列中的每个唯一值分配一个唯一标识符,或者,如果该值以前存在于它之前的行中,则查找上次分配给它的数字。然后,我可以稍后根据这些唯一数字查找不同的值,并关联它们的计数以显示每个值在数据集中存在的频率。
我已经创建了这个分析表,它已经知道列的位置。示例如下:
=IF(B5="",0,IF(COUNTIF(B$3:B4,B5)>0,VLOOKUP(B5,B:AB,27,FALSE),MAX(AB$3:AB4)+1))
我的问题是如何使公式的标准和起始位置动态化,以便我可以更改我归类为固定的列,而无需调整分析公式。
因此,对于上面的示例,B 列是一个固定值列。我已经有了以下公式:
formula=MATCH(AB2,$A2:$Z2,0)
这告诉我第 2 列(也称为 B)是第一个固定值。
如果我使用我所知道的来重现该公式以动态工作,那将是:
=IF(COUNTIF($column(formula)+row (=3): column(formula)+ current_row(5)-1
, column(formula)+ current_row(5)>0
, VLOOKUP (column(formula)+current_row(5), column(formula):AB
, COLUMNS(column(formula):AB)
, false)
, MAX(AB$3:AB4)+1))
但是,我完成此公式的方式不起作用 - 我不知道如何明确设置公式中的行号。我希望我已经提供了足够的信息来解释我想要做什么,在此先感谢。
【问题讨论】:
-
还是不行,这是我最近的尝试
=IF(COLUMN(AQ$1) & ROW(5)="",0, IF(COUNTIF (COLUMN (AQ$1) & "$3:" & COLUMN (AQ$1)&"4,"& COLUMN (AQ1) &"5)" & >0, VLOOKUP(COLUMN(AQ$1) &"5, "& COLUMN(AQ$1) &":AQ," & COLUMNS(COLUMN(AQ$1), AQ), FALSE), MAX(AQ$3:AQ4)+1)) -
哦,我知道我可能需要
=SUBSTITUTE(ADDRESS(1,AQ1,4),"1",""),因为它给了我可以用作公式中插入文本的字母。仍在努力中 -
如何让它读取结果,就好像我已将其作为公式的一部分输入一样?这个
=countIF(SUBSTITUTE(ADDRESS(1,AQ1,4),"1","")&":"&SUBSTITUTE(ADDRESS(1,AQ1,4),"1",""),SUBSTITUTE(ADDRESS(1,AQ1,4),"1","") & AA10)没有解析为 'COUNTIF(Z:Z, Z10) - 这只是一个错误的公式
标签: excel