发布时间:2017-10-01 作者:admin 点击量:
网友问到的 Excel 的题目:以下图,有一个日期和办事的清单列表,此中是三种办事的记实,若何按照这个办事清单(下图左),转换为个体三个办事的日期清单(下图右)
【公式设计与解析】
起首,拔取贮存格A1:D27,按 Ctrl+Shift+F3 键,勾选「顶端列」,界说名称:日期、A办事、B办事、C办事。
接着输入公式,贮存格F2:
{=OFFSET($A$1,SMALL(IF(INDIRECT(F$1)="V",ROW(日期),999),ROW(1:1))-1,0)}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键,Excel 会主动发生「{}」。
複製贮存格F2,贴至贮存格F2:H22。
(1) INDIRECT(F$1)
操纵 INDIRECT 函数将贮存格F1的内容转换为贮存格位址北京拓展公司。例如:贮存格F1(「A办事」),转换为贮存格B2:B27。(先前已界说名称範围)
(2) IF(INDIRECT(F$1)="V",ROW(日期),999)
在阵列公式中,判定在贮存格範围内的贮存格内容是不是为「V」,若是,则传回日期阵列的列号(操纵 ROW 函数),若否,则传回『999』。(这只是一个很年夜的数字,只要比贮存格範围最年夜值年夜便可。)
(3) SMALL(IF(INDIRECT(F$1)="V",ROW(日期),999),ROW(1:1))
操纵第(2)式所传回的日期阵列,操纵 SMALL 函数由小到年夜,依序掏出日期对应的列号。(当公式向下複製时,会发生 ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→…。)
(4) OFFSET($A$1,第(3)式-1,0)
按照第(3)式获得的日期列号,代入 OFFSET 函数,便可找出对应的A栏内容(日期)。
也许,你的资料清单长成下图如许:
【公式设计与解析】
起首,拔取贮存格A1:B27,按 Ctrl+Shift+F3 键,勾选「顶端列」,界说名称:日期、办事。
接着输入公式,贮存格D2:
{=OFFSET($A$1,SMALL(IF(办事=D$1,ROW(日期),999),ROW(1:1))-1,0)}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键,Excel 会主动发生「{}」。
複製贮存格D2,贴至贮存格D2:F22。
公式道理同上。 创作者先容 vincent
联系我们
contact us地址:北京市西红门理想商业街3号楼6层
电话:4000-288-501
点击图标在线留言,我们会及时回复