在 Excel / Google 电子表格中显示相邻单元格之间基于标签的差异
Displaying label based difference between neighbouring cells in Excel / Google Spreadsheets
我正在 Excel / Google 电子表格中制作一个系统,其中数据从原始数字转换为更小的通用类别。该系统的目的是测量数据集中每年的变化。我想计算行中一个单元格与下一个单元格的差异,并将数据中的这种变化分成 20 个不同的步骤。
所以我有一个原始数据电子表格,如下所示:
然后我有一组这样的类别。右边一栏代表比上年增减值:
所以我需要一个可以同时满足以下条件的公式:
- 计算当前单元格与目标单元格的差值
剩下的。
- 然后根据我张贴的图片的 "Change steps" 列找出要输入的数字。
目前我有以下公式:
=IF(AND(Data!B12-Data!C12<Formula!S2),"1",
IF(AND((Data!B12-Data!C12>Formula!S2,Data!B12-Data!C12<Formula!S3),"2",
IF(AND(Data!B12-Data!C12>Formula!S3, Data!B12-Data!C12<Formula!S4),"3",
IF(AND(Data!B12-Data!C12>Formula!S4, Data!B12-Data!C12<Formula!S5),"4",
IF(AND(Data!B12-Data!C12>Formula!S5, Data!B12-Data!C12<Formula!S6),"5",
IF(AND(Data!B12-Data!C12>Formula!S6, Data!B12-Data!C12<Formula!S7),"6",
IF(AND(Data!B12-Data!C12>Formula!S7, Data!B12-Data!C12<Formula!S8),"7",
IF(AND(Data!B12-Data!C12>Formula!S8, Data!B12-Data!C12<Formula!S9),"8",
IF(AND(Data!B12-Data!C12>Formula!S9, Data!B12-Data!C12<Formula!S10),"9",
IF(AND(Data!B12-Data!C12>Formula!S10, Data!B12-Data!C12<Formula!S11),"10",
IF(AND(Data!B12-Data!C12>Formula!S11, Data!B12-Data!C12<Formula!S12),"11",
IF(AND(Data!B12-Data!C12>Formula!S12, Data!B12-Data!C12<Formula!S13),"12",
IF(AND(Data!B12-Data!C12>Formula!S13, Data!B12-Data!C12<Formula!S14),"13",
IF(AND(Data!B12-Data!C12>Formula!S14, Data!B12-Data!C12<Formula!S15),"14",
IF(AND(Data!B12-Data!C12>Formula!S15, Data!B12-Data!C12<Formula!S16),"15",
IF(AND(Data!B12-Data!C12>Formula!S16, Data!B12-Data!C12<Formula!S17),"16",
IF(AND(Data!B12-Data!C12>Formula!S17, Data!B12-Data!C12<Formula!S18),"17",
IF(AND(Data!B12-Data!C12>Formula!S18, Data!B12-Data!C12<Formula!S19),"18",
IF(AND(Data!B12-Data!C12>Formula!S19, Data!B12-Data!C12<Formula!S20),"19",
IF(AND(Data!B12-Data!C12>Formula!S20, Data!B12-Data!C12<Formula!S21),"20",
)))))))))))))))))))))
我认为这可行,但我得到的只是#ERROR!。有小费吗?
如果您的 Change steps:
(#1、#2、#3 等)在 Formula sheet
的 R 列中,则以下 INDEX/MATCH 函数 应该可以解决问题:
=IF(Data!B12-Data!C12<Formula!$S,1,SUBSTITUTE(INDEX(Formula!$R:$R,MATCH(Data!B12-Data!C12,Formula!$S:$S,1)),"#","")+1)
公式sheet中的设置:
结果:
我自己想出来了。正确公式:
IF(AND(OFFSET(INDIRECT("Data!"&address(row(),column())),0,-1)-ABS(INDIRECT("Data!"&address(row(),column())))>Formel!J3, OFFSET(INDIRECT("Data!"&address(row(),column())),0,-1)-ABS(INDIRECT("Data!"&address(row(),column())))<Formel!J4), "2",
等等。
我正在 Excel / Google 电子表格中制作一个系统,其中数据从原始数字转换为更小的通用类别。该系统的目的是测量数据集中每年的变化。我想计算行中一个单元格与下一个单元格的差异,并将数据中的这种变化分成 20 个不同的步骤。
所以我有一个原始数据电子表格,如下所示:
然后我有一组这样的类别。右边一栏代表比上年增减值:
所以我需要一个可以同时满足以下条件的公式:
- 计算当前单元格与目标单元格的差值 剩下的。
- 然后根据我张贴的图片的 "Change steps" 列找出要输入的数字。
目前我有以下公式:
=IF(AND(Data!B12-Data!C12<Formula!S2),"1",
IF(AND((Data!B12-Data!C12>Formula!S2,Data!B12-Data!C12<Formula!S3),"2",
IF(AND(Data!B12-Data!C12>Formula!S3, Data!B12-Data!C12<Formula!S4),"3",
IF(AND(Data!B12-Data!C12>Formula!S4, Data!B12-Data!C12<Formula!S5),"4",
IF(AND(Data!B12-Data!C12>Formula!S5, Data!B12-Data!C12<Formula!S6),"5",
IF(AND(Data!B12-Data!C12>Formula!S6, Data!B12-Data!C12<Formula!S7),"6",
IF(AND(Data!B12-Data!C12>Formula!S7, Data!B12-Data!C12<Formula!S8),"7",
IF(AND(Data!B12-Data!C12>Formula!S8, Data!B12-Data!C12<Formula!S9),"8",
IF(AND(Data!B12-Data!C12>Formula!S9, Data!B12-Data!C12<Formula!S10),"9",
IF(AND(Data!B12-Data!C12>Formula!S10, Data!B12-Data!C12<Formula!S11),"10",
IF(AND(Data!B12-Data!C12>Formula!S11, Data!B12-Data!C12<Formula!S12),"11",
IF(AND(Data!B12-Data!C12>Formula!S12, Data!B12-Data!C12<Formula!S13),"12",
IF(AND(Data!B12-Data!C12>Formula!S13, Data!B12-Data!C12<Formula!S14),"13",
IF(AND(Data!B12-Data!C12>Formula!S14, Data!B12-Data!C12<Formula!S15),"14",
IF(AND(Data!B12-Data!C12>Formula!S15, Data!B12-Data!C12<Formula!S16),"15",
IF(AND(Data!B12-Data!C12>Formula!S16, Data!B12-Data!C12<Formula!S17),"16",
IF(AND(Data!B12-Data!C12>Formula!S17, Data!B12-Data!C12<Formula!S18),"17",
IF(AND(Data!B12-Data!C12>Formula!S18, Data!B12-Data!C12<Formula!S19),"18",
IF(AND(Data!B12-Data!C12>Formula!S19, Data!B12-Data!C12<Formula!S20),"19",
IF(AND(Data!B12-Data!C12>Formula!S20, Data!B12-Data!C12<Formula!S21),"20",
)))))))))))))))))))))
我认为这可行,但我得到的只是#ERROR!。有小费吗?
如果您的 Change steps:
(#1、#2、#3 等)在 Formula sheet
的 R 列中,则以下 INDEX/MATCH 函数 应该可以解决问题:
=IF(Data!B12-Data!C12<Formula!$S,1,SUBSTITUTE(INDEX(Formula!$R:$R,MATCH(Data!B12-Data!C12,Formula!$S:$S,1)),"#","")+1)
公式sheet中的设置:
结果:
我自己想出来了。正确公式:
IF(AND(OFFSET(INDIRECT("Data!"&address(row(),column())),0,-1)-ABS(INDIRECT("Data!"&address(row(),column())))>Formel!J3, OFFSET(INDIRECT("Data!"&address(row(),column())),0,-1)-ABS(INDIRECT("Data!"&address(row(),column())))<Formel!J4), "2",
等等。