一首妖、題目要求
題目:
請編制公式將A1:H3單元格區(qū)域轉換為J2:K13區(qū)域
要求:
J列K列用一個公式橫向和縱向下拉填充生成
二、解題思路
這個題看起來似乎很難爷恳,是一個難以完成的任務有缆。
實際上并太難。我們一步步分析:
1温亲、分析要引用的數據的規(guī)律
如果不用公式棚壁,而是直接用單元格鏈接,J列栈虚、K列的公式應該是這樣的:
我們將上圖中所引用的單元格地址袖外,用行號列號來表示,
J列要引用的項目單元格:
A1即為第1行第1列魂务,
C1即為第1行第3列
E1即為第1行第5列
......
K列要引用的金額單元格:
B1即為第1行第2列
D1即為第1行第4列
F1即為第1行第6列
......
將所引用單元格的行號列號依次羅列曼验,即為N列和O列、N列和P列所示头镊。
我們分析一下N列O列P列數據有無規(guī)律蚣驼,可以看出,規(guī)律很明顯:
行號:每重復四個然后遞增1相艇;
列號分別是在1、3纯陨、5坛芽、7循環(huán)重復(或在2、4翼抠、6咙轩、8循環(huán)重復)
如果我們能構造出這樣的序列,然后用INDEX函數來引用就行了阴颖。
INDEX函數就是專門干這活的:取第幾行第幾列交叉點的值活喊。
比如要取A1:H3單元格區(qū)域的C2單元格的"F",就是取A1:H3區(qū)域的第2行第3列量愧,公式為:
=INDEX(A1:H3,2,3)
要取F3單元格的11钾菊,就是取A1:H3區(qū)域的第3行第6列帅矗,其公式為:
=INDEX(A1:H3,3,6)
關鍵是用什么公式、如何構造出N列煞烫、O列浑此、P列三列中的序列?
2滞详、構造序列
這個就要用到高中的數學知識了凛俱,高中學了那么多數學,現(xiàn)在終于可以派上用場了料饥。下面讓我們穿越到高中數學課堂:
數學老師在講臺上使勁敲黑板蒲犬,大聲喊到:同學們,安靜安靜岸啡,開始做題了原叮,請在十分鐘之內提交答案,先做完的先下課:
有一個從1到12的原始序列凰狞,請根據此序列篇裁,找到一算式,分別計算出下面三個序列
序列一:
1赡若、1达布、1、1逾冬、2黍聂、2、2身腻、2产还、3、3嘀趟、3脐区、3、4她按、4......
序列二:
1牛隅、3、5酌泰、7媒佣、1、3陵刹、5默伍、7、1、3也糊、5炼蹦、7、1显设、3......
序列三:
2框弛、4、6捕捂、8瑟枫、2、4指攒、6慷妙、8、2允悦、4膝擂、6、8隙弛、2架馋、4......
(1)生成序列一:
序列一是每個數字重復四次一遞增,那么我們可以將其除以4全闷。為了讓其精確從1開始重復四次叉寂,因而,將原始序列加3总珠,然后除4再取整數屏鳍。用Excel公式表示
即為=INT((n+3)/4)
要讓公式往下拖動時依次遞增,可以用ROW函數直接生成:
=INT((ROW(A1)+3)/4)
注:ROW函數的作用是取行號局服,ROW(A1)即取A1單元格的行號钓瞭,即1,公式往下填充時淫奔,由于使用的是相對引用山涡,會自動變?yōu)?/p>
=INT((ROW(A2)+3)/4)
=INT((ROW(A3)+3)/4)
(2)生成序列二
下面我們來看如何生成序列二:
序列二1、3唆迁、5佳鳖、7、1媒惕、3、5来庭、7妒蔚、1、3、5肴盏、7科盛、是循環(huán)序列〔嗽恚看到這個循環(huán)的結構贞绵,我們感覺它和取余數有點接近。比如恍飘,將1到8分別除以4榨崩,取余數,其余數分別為:
1章母、2母蛛、3、0乳怎、1彩郊、2、3蚪缀、0.......
因而我們應該首先想到取余數秫逝。我們先將原序列減1,除以4询枚,然后再取余數违帆。也就是將0到7,分別除以4哩盲,取余數前方。其余數的序列為:
0、1廉油、2惠险、3、0抒线、1班巩、2、3
然后將上面的序列乘以2嘶炭,再加1
即抱慌,=2*N+1
序列就變成了:
1、3眨猎、5抑进、7、1睡陪、3寺渗、5匿情、7
將上面的過程寫成Excel公式,就是:
=2*MOD(N-1,4)+1
將N換成ROW函數信殊,公式為:
=2*MOD(ROW(A1)-1,4)+1
(3)生成序列三
序列三的公式參考序列二的公式炬称,不贅述。
三涡拘、編制公式
先來看前面已經提到的簡單傻瓜化的公式:
=INDEX($A$1:$H$3,x,y)
將序列一的公式INT((ROW(A1)+3)/4)代入到上面公式的x
將序列二的公式2*MOD(ROW(A1)-1,4)+1代入到上面公式的y玲躯,
代入后,公式為:
=INDEX($A$1:$H$3,INT((ROW(A1)+3)/4),2*MOD(ROW(A1)-1,4)+1)
此公式往下拖動填充沒問題鳄乏,但是往右填充跷车,無法自動引用相應的數字呢,要手工修改為:
=INDEX($A$1:$H$3,INT((ROW(A1)+3)/4),2*MOD(ROW(A1)-1,4)+2)
為了能用一個公式往下和往右拖動完成數據的引用汞窗,將公式修改完善為:
=INDEX($A$1:$H$3,INT((ROW(A1)+3)/4),2*MOD(ROW(A1)-1,4)+COLUMN()-9)
說明:
COLUMN()表示取公式所在單元格的列號姓赤。在J列其計算結果為10,在K列其計算結果為11仲吏。
四不铆、知識點回顧
本案例最關鍵的知識點就是序列的構造:
1、重復N個遞增一的序列(1裹唆、1誓斥、1、1许帐、2劳坑、2、2成畦、2距芬、3、3循帐、3框仔、3)的構造方法
如果構造1、1拄养、1离斩、1、2瘪匿、2跛梗、2、2棋弥、3核偿、3、3顽染、3這種每重復N個遞增一的序列宪祥,可以將其除以N聂薪,然后取整,公式為:
=INT((ROW(A1)+N-1)/N)
2蝗羊、N個連續(xù)數字的重復序列(1、2仁锯、3耀找、4、1业崖、2野芒、3、4双炕、1狞悲、2、3妇斤、4)的構造方法
這種序列用取余數的方法來構造摇锋,其公式為:
=MOD(ROW(A1)-1,N)+1
大家如果想學習更多的函數知識和Excel實戰(zhàn)經驗,歡迎購買《“偷懶”的技術:打造財務Excel達人》
《“偷懶”的技術》穩(wěn)踞當當網辦公類暢銷榜前五名站超,
好評率99.7%的Excel暢銷書荸恕,你值得擁有!
購買地址:
http://product.dangdang.com/23626444.html
--------------------
本文首發(fā)于微信公眾號“Excel偷懶的技術“死相,
本公眾號堅持分享原創(chuàng)Excel文章融求,求實用、接地氣算撮、不炫技生宛。歡迎大家關注!
如果本文對你有幫助肮柜,歡迎點贊陷舅、轉發(fā)分享!