层次坐标=找"爹"之旅
层次坐标。首先要理解什么是层次坐标?例如:你在四川,但你怎么告诉别人你的位置?
你可以回答说:四川在甘肃的下面。这就是帆软的坐标,参照物的意思。
而别人又问你:甘肃又在什么位置?
你回答说:甘肃在内蒙古下面。这就是帆软的层次,一层一层找的意思。
总结起来就是:内蒙古的下面是甘肃,甘肃的下面是四川。这就找到四川的位置了。这就是帆软的层次坐标思维。
理解了层次坐标的概念,下面我们开始正式学习:
一、书写格式:
所求单位格{条件}
例如:D2{1=1} 层次坐标只有这一种唯一的公式,也只需要记住这一种即可。其余皆为变形、略写。
详解公式:D2 为所求单元格。
方括号内为D2的层次坐标内容。
A2,B2,C2为D2的左父格,以及父格的父格。D1为D2的上父格。
: 冒号在此处就是一种固定的书写格式。
! 有感叹号表示绝对层次坐标,没有感叹号表示相对层次坐标。
!+1 表示绝对层次坐标,正着数第一个扩展值。
!-1 表示绝对层次坐标, 倒着数第一个扩展值。
+1 表示相对层次坐标,扩展后的所有值向上或向左整体移动1格。
-1 表示相对层次坐标,扩展后的所有值向下或向右整体移动1格。
, 逗号用来分开不同层级的父格。
; 分号之前表示左父格,分号之后表示上父格。
{} 大括号内为筛选条件。
1=1 表示具体条件。问:什么情况下1等于1?答:任何情况下1都等于1。
高频疑问:
绝对层次坐标和相对层次坐标到底有什么区别?
答:①:绝对 二字,顾名思义:肯定,100%,一定。(明确的某个值)
例如:A2 指A2单元格扩展后正着数第9个值。不多也不少,一定是第9个值。返回的值:有且只有唯一的1个。
②:相对 二字,顾名思义:相比较来,对照着来,估计着来,不确定性非常大。(整体移动)
例如:C2 指C2单元格扩展后的值,整体向上移动1个位置。返回值的组成:C2扩展后的部分值和空值。比如:C2原来有7个值,向上移动后1个位置后,还是7个值。但肯定有1个及以上的空值,并不能确定有几个空值,有可能全都是空值。核心点:并不能确定能返回多少个C2扩展后的值,有可能一个也返回不了,全部返回空值。
左父格和上父格有什么区别?又有什么用?
答:纵向扩展的单元格是左父格。横向扩展的单元格为上父格。用左父格和上父格,共同确定所求单元格的位置。
形象理解为:所求单元格是 儿子,左父格是 爹,上父格是 妈。层次坐标最重要的就是找到儿子的爹和妈。
二、实战演练:
模板图:
效果图:
题目1问:如何找到 爷爷4 ?
答:B2{1=1}
答案解析:爷爷4 在B2单元格。所以,第一步写B2。然后,开始找B2单元格的父格,父格的父格。形象理解为,找B2单元格的爹。把B2的爹,爹的爹,都给它找齐全,全部写进去。B2单元格的爹是A2单元格。而A2单元格再也没有爹了,就无须再找爹的爹了。然后,再观察发现 爷爷4 的爹是 太爷爷2,而太爷爷2 排在正着数第二位,所以是:A2:!+2。再观察发现 太爷爷2 有爷爷3和爷爷4两个儿子,而爷爷4是太爷爷2的倒数第一个儿子,所以是:B2!:-1。再观察发现爷爷4没有妈(上父格),所以分号之后什么也不用写,最后写上筛选条件{1=1},表示无须筛选。
效果图:
题2问:如何找到 爹3?
答:C2{1=1}
答案解析:和上一题一样的原理。形象的理解为:太爷爷1 排在正着数第一个,所以写A2:!+1;太爷爷1又有两个儿子分别是爷爷1和爷爷2,而爹3是爷爷2的儿子,观察发现爷爷2是太爷爷1的正着数第二个儿子,所以又写B2:!+2;再观察发现爹3是爷爷2的正着数第二个儿子,所以写C2:!+2。再观察发现,爹3没有妈(上父格),所以分号后,什么也不写。写条件{1=1},表示没有任何筛选过滤。
效果图:
题3问:如何找到 爹6?
答:C2{1=1}
答案解析:和上面两个题一样的原理。
效果图:
题4问:如何把 爹 这一列7个数据整体向上移动1格?
答:C2{1=1}
重点:相对坐标是从最远的父格开始找,截止到最近的父格,不能找到所求值本身所在层次坐标。形象理解为:从祖宗开始找,到爹的位置截止,不能找儿子层次。而绝对坐标,从祖宗开始找,到儿子层次才能截止。
答案解析:因为是整体移动,所以是相对坐标,不需要写感叹。又因移动的是 爹 这一列数据,所以第一步写C2;从最远父格写到最近父格,即,从太爷爷开始写,所以第二步写A2:-0,表示A2向下移动0格,意为无须移动A2;第三步写B2:+1,表示把C2的爹——B2向上移动1格。因为没有上父格,即:没有妈,所以第四步只写分号,分号之后什么也不写;而我们不需要筛选数据,所以第五步写{1=1}。
效果图:
注释:
箭头1:爷爷1向上移动1格后,没有太爷爷生出来爷爷1这个儿子,儿子都没有,哪里来的孙子?所以 爹1 数据丢失。
箭头2:太爷爷1 生出来了 爷爷2,爷爷2又生出来了爹2,所以 爹2 数据能正常显示,能够正常向上移动1格。
箭头3:公式强制把爷爷3移动到太爷爷1 后面,但是他们根本就不是父子关系,所以也生不出来亲孙子,所以生不出来 爹3 这个孙子。所以爹3 数据丢失。
箭头4:太爷爷2 生出来 爷爷4,爷爷4 又生出来 爹5。
箭头5:公式强制把爷爷5移动到太爷爷2 后面,但是他们根本就不是父子关系,所以也生不出来亲孙子,所以生不出来 爹6这个孙子。所以爹6 数据丢失。
箭头6:公式强制把爷爷6移动到太爷爷3 后面,但是他们根本就不是父子关系,所以也生不出来亲孙子,所以生不出来 爹7 这个孙子。所以爹7 数据丢失。
箭头7:太爷爷4,连个儿子都没有,哪里来的孙子?
总结:向上移动1格后,能够找到有太爷爷,有爷爷的,只有 爹2和爹5 满足。所以总共7个数据,向上移动1格后,最后只剩下2个数据了。这就是相对坐标的不确定性。不像绝对坐标,有且只有1个值。
题5问:如何把 爷爷 这一列6个数据整体向下移动1格?
答案:B2{1=1}
答案解析:公式不在赘述,和上题一样的思路。
效果图:
注释:
箭头1:太爷爷列,整体向下移动一格后,太爷爷2有两个儿子,分别是大儿子 爷爷3 和 小儿子爷爷4 。但是单元格,只有1个位置。老大优先,所以只显示 爷爷3 这个数据。而爷爷4 数据丢失。
箭头2:太爷爷4,找不到儿子,所以 爷爷6 数据丢失。
总结:相对坐标,不稳定性极高。总共6个数据,向下移动1格数据后,丢失2个数据。还剩 4个数据。那在什么情况下比较稳定?在 每个爹 都有 相同数量的儿子情况下比较稳定。比如:爹1,有3个儿子。爹2,也有3个儿子。爹3,也有3个儿子。爹4,也有3个儿子。这类比较稳定的题目,在帆软官方文档有很多,此处不再演示。
题目6问:如何找到 妈2 ?
答:D1{1=1}
答案解析:题目是找一个固定的数据,所以是绝对坐标,必有感叹号。再看,妈2 数据在D1列,就能写出D1。再观察发现D1是横向扩展,并且,是最上父格,所以只能自己给自己当爹,只能写D1了。再观察发现,妈2,是正着数第二个数据,所以写!+2。又继续观察发现,D1 没有左父格,所以分号之前什么也不用写。最后条件{1=1}表示无须筛选。
总结:和纵向扩展比较,只是把分号放在坐标之前而已。总的来说就是,分号之前是纵向坐标,分号之后是横向坐标,有坐标就全都要写出来,没有就不写。
效果图:
题目7问:如何把 妈 列的3个数据整体向右移动1格?
答:D1{1=1}
答案解析:因为整体移动,所以是相对坐标,没有感叹号。妈 列在D1,所以首先写D1。又观察发现,妈 列没有左父格且是横向扩展,所以分号之前什么也不写。又观察发现,妈 列的上父格,就是自己,只能自己给自己当爹,所以写D1。然后题目要求向右移动1个,所以写-1。最后条件{1=1}表示无须筛选数据。
总结:和纵向扩展比较,只是把分号放在坐标之前而已。总的来说就是,分号之前是纵向坐标,分号之后是横向坐标,有坐标就全都要写出来,没有就不写。
效果图:
注释:
箭头1:妈3 找不到 格子。所以数据丢失。3个数据向右移动1格,丢失1个数据。同样体现:相对坐标的不稳定性。
题目8问:如何 找到儿子11 ?
答:D2{1=1}
答案解析:因是找固定的一个值,所以是绝对坐标,所以必有感叹号。再看,儿子11在D2单元格,所以首先写出D2。然后观察数据,发现是,太爷爷2 生出了 爷爷3,爷爷3 又生了 爹4,然后,爹4 和 妈2 共同生出了 儿子11。经过分析,既有纵扩展,又有横扩展。所以判断是交叉坐标。交叉坐标,不需要写自己本身的坐标,让你写,你也写不出来。交叉坐标是用,左父格的坐标和上父格的坐标联合表示即可。最后:{1=1}表示无须筛选。
总结:就是把纵坐标和横坐标都写上而已。换汤不换药而已。
效果图:
题目9问:如何把 儿子1,4,7,10,13...25 总计9个数据向下移动1格?
答:D2{1=1}
答案解析:儿子1,4,7,10,13...25 都在D2单元格。所以首先写出D2。开始分析题目,题目的意思是求,D2单元格扩展后的第1列,再向下移动1格。明确提出是,第1列。唯一的,第1列。证明是横扩展,而且是绝对坐标,必须有感叹号。而向下移动,证明是纵扩展,而且是相对坐标,不能有感叹号。然后把D2的,所有的左父格,上父格都写出来。形象理解为,把D2的爹,爷爷,太爷爷,妈,都要写出来,一个不能漏了。A2:-0,表示A2单元格向下移动0格。B2:+0,表示B2单元格向上移动0格。C2:-1,表示C2单元格向上移动1格。D1:!+1,表示D1横向扩展后的第一格数据。
总结:此处就是把横,纵,绝对,相对,4个属性,联合使用。方式方法和单独使用一种属性是一样的。只要把父格,都写全了,一个不漏了,就不会出错。
效果图:
注释:
A2,B2单元格都是移动0格,等于没有移动。所以 太爷爷 和 爷爷 都是亲生的父子关系。
但是,C2单元格向下移动1格后,只有 爷爷2 和 爹2 是亲生的父子关系,而 爹2 又生了 儿子4 儿子5 儿子6,又因为题目只求扩展后的第1列数据,即为:爹2 和 妈1 共同所生的儿子,只有 儿子4 满足条件。所以 儿子4 这个数据保留了下来。
再看其他的数据,例如,爷爷2 和 爹1 根本就不是亲生的父子关系,只是利用公式,强制匹配的假父子关系而已,导致 爹1 生不出来儿子了,所以 儿子1 数据丢失。其余丢失的数据,皆是如此,没有真实的父子关系。
三、专题总结:
帆软官方给出了层次坐标的很多种书写格式,但其实就一种书写格式而已。这就像《孔乙己》中所说的,茴香豆的“茴”,在繁体字中有4种写法,但是意思却又都是一样的。在层次坐标中也是一样的,书写格式很多,但作为新手,就记住一种即可,任它千变万化,我自一力破之。
记住这 D2{1=1} 一种格式就行了,这种格式绝对不会错。
下面简单介绍帆软官方的略写格式。
D2{1=1} 等同于 D2
题目1:B2{1=1} 等同于 B2
题目2:C2{1=1} 等同于 C2
题目3:C2{1=1} 等同于 C2
题目4:C2{1=1} 等同于 C2
题目5:B2{1=1} 等同于 B2
题目6:D1{1=1} 等同于 D1
题目7:D1{1=1} 等同于 D1
题目8:D2{1=1} 等同于 D2
题目9:D2{1=1} 等同于 D2
还有一些略写格式:
例如:A2{1=1} 等同于 A2 (此处区别:左边公式必须有A2作为左父格,而右边公式可以有A2左父格,也可以没有)
还需记住两个特殊符号。
& 表示序号。形象理解为:1个爹,他生了几个儿子。如果是5个,那么这5个儿子的序号就是:1,2,3,4,5。
$ 表示扩展后的某一个的值。比如:A2 表示A2扩展后的所有值。而$A2 表示扩展后的某一个值,具体是哪一个,那就是看题目的实际情况了。
最后条件{1=1},可以根据实际题目情况,改写。比如{A2>10},表示只要大于10的数据,小于等于10的数据被剔除过滤掉了。
如果是求 环比、同比、组内排序、间隔运算等等,其实都是在本文的基础上,加一些条件判断而已。
易错点:A2{1=1} 这个2,一定要是阿拉伯数字,不能写成(1+1)。而为了实现这种动态计算,帆软引入了EVAL公式。通过EVAL公式,可以实现(1+1)这种动态计算的功能。
最后总结的口诀就是:层次坐标,主要核心就是找爹。只有爹找准了,找够了,想要哪个数据就找哪个数据,想移哪个数据,就移哪个数据。绝对坐标可以有父格,也可以没有,一般是没有。相对坐标,一定要设置有父格,一般是设置最近的父格。
四:自我检测
题:让 儿子3,6,9...27,共计9个数据,只相对于 爷爷 列 ,集体下移1格后,保留下了哪些 儿子 的值?
欢迎大家留下答案,并说出为什么是这样的答案。
提示:是先有鸡,还是先有蛋呢?一个家里,是老大更重要,还是老二更重要呢?
cpt文件下载:
题目1-题目9.zip (1.92 K)