中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Excel中R1C1樣式引用詳解

    這篇文章根據(jù)excelhome論壇中的兩個帖子進(jìn)行整理,稍作了修改。

    以下內(nèi)容來自第一個帖子,點擊這里可以查看原文。

    R1C1樣式---全知道

    一、引用單元格:R1C1樣式與A1樣式比較

    DanBricklin和BobFrankston使用A1表示電子表格左上角的單元格,Mitch Kapor在Lotus 1-2-3中也是使用這種編址方案。
    Microsoft試圖改變這種趨勢,采用了名為R1C1樣式編址方案。單元格A1稱為R1C1,因為它位于第一行,第一列(Row 1, Column 1)。
    在20世紀(jì)80年代和90年代初期,A1樣式稱為了標(biāo)準(zhǔn),Microsoft公司認(rèn)識到了危機,最終讓excel接受了A1樣式,并同時支持R1C1樣式編址方案。當(dāng)前,
excel默認(rèn)使用A1樣式。
    為什么學(xué)習(xí)R1C1樣式?
    答案是:
    1,excel的宏錄制器采用的是R1C1樣式錄制公式。
    2,R1C1樣式比之A1樣式有更高的效率,尤其是對于公式,編寫的代碼效率會更高。
    3,在BVA編輯器中,創(chuàng)建數(shù)組公式或基于公式設(shè)置條件格式時,采用的是R1C1樣式輸入公式。
    怎么切換R1C1樣式?
    單擊Ofice按鈕選擇Excel選項,在公式類別中選擇復(fù)選框“R1C1引用樣式”。版面上唯一不同是列標(biāo)A,B,C--變成數(shù)字1,2,3,單元格C5變?yōu)镽5C2

    二、EXCEL公式的神奇之處

 
 

    如動畫所示,Excel 能智能的填充公式,并向下復(fù)制,第一次看到一定感覺非常驚奇。
    實際這并不驚奇,因為,Excel內(nèi)部使用的是R1C1樣式的公式,以A1樣式顯示地址和公式。如果將動畫所示的工作表切換成R1C1樣式表示法,將發(fā)現(xiàn)C2:C7的公式都是形同的。

    三、在VBA中采用A1樣式與R1C1樣式之比較

    如上述動畫實例,如用A1樣式編寫代碼,代碼可以類似下面這樣:

 

Sub chengji()
    Dim Finalrow As Integer
    Finalrow = Cells(Rows.Count, 2).End(xlUp).Row '求第二列數(shù)據(jù)行數(shù)
    Range("c2").Formula = "=a2*b2"
    Range("C2").Copy Destination:=Range("C2:C" & Finalrow)
End Sub

    上述代碼在第二行輸入公式,再向下復(fù)制公式
    如果用R1C1樣式只需一條語句就可整列輸入公式

 

Sub chengji()
    Dim Finalrow As Integer
    Finalrow = Cells(Rows.Count, 2).End(xlUp).Row '求第二列數(shù)據(jù)行數(shù)
    Range("c2:c" & Finalrow).FormulaR1C1 = "=RC[-1]*RC[-2]"
End Sub

    使用R1C1樣式的優(yōu)點是,所有C列的公式都是相同的,不需要改變

    四、怎么引用R1C1樣式

    R1C1樣式采用R來表示行,C來表示列
    4.1 樣式的相對引用
    對于列正數(shù)表示向右移指定數(shù)量的列,負(fù)數(shù)反之。
    對于行正數(shù)表示向下移指定數(shù)量的行,負(fù)數(shù)反之。
    如果省略掉R或C后面的方括號,表示和引用單元格在同行或同列。
    4.2 樣式的絕對引用
    在A1樣式中使用絕對引用要在行號或列號字母前使用$。但在R1C1樣式中只需省略方括號就行了,是不是很簡單!!!!!!!!
    如下所示代碼:

 

Sub huizong()
    Dim Finalrow As Integer
    Finalrow = Cells(Rows.Count, 2).End(xlUp).Row
    Cells(Finalrow + 1, 1).Value = "匯總"
    Cells(Finalrow + 2, 1).Resize(1, 3).FormulaR1C1 = "=SUM(R2C:R[-2]C)"
End Sub

    引用R2C:R[-2]C表示將當(dāng)前列第2行到上2行中,同列數(shù)據(jù)的和,通過使用R1C1混合引用,可以使用公式求行數(shù)不確定的數(shù)據(jù),
    4.3 引用整行和整列
    有時候需要編寫整列的公式。例如求G列的最大值,如不知道G列包含多少行,可在單元格中輸入公式=MAX($G:$G),要找出第一行中最大的值可用
=MAX($1:$1)或R1C1公式=MAX(R1)。
    可以整行、整列使用相對引用。要計算當(dāng)前單元格上一行的平均值,可用=AVERAGE(R[-1])
    如何在D5引用其周圍的單元格?

 

    五、R1C1樣式的經(jīng)典實例 ,一種有趣的行為

    創(chuàng)建R1C1公式實際上比A1公式更直觀。一個演示R1C1公式的經(jīng)典實例是創(chuàng)建乘法表。在excel中,使用單個混合引用公式就可創(chuàng)建乘法表。
    5.1 創(chuàng)建乘法表
    在B1:M1中輸入數(shù)字1-12,在A2:a13中也輸入數(shù)字1-12 ,現(xiàn)在創(chuàng)建b2:m13中所有單元格公式,它計算第一行和第一列的乘積。用R1C1樣式公式代碼如下:

 

Sub Multiplicationtable8()
    Range("b1:m1").Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
    Range("b1:m1").Font.Bold = True
    Range("b1:m1").Copy
    Range("a2:a13").PasteSpecial Transpose:=True
    Range("b2:m13").FormulaR1C1 = "=rc1*r1c"
    Cells.EntireColumn.AutoFit   '最合適的列寬
End Sub

    5.2 一種有趣的行為
    嘗試以下操作,將單元格指針移到F6,單擊“開發(fā)工具”--”錄制宏“,然后單擊“開發(fā)工具”---“使用相對引用”,輸入公式=a1并按ctrl+enter鍵,以保留在F6鍵中。單擊“停止錄制”按鈕。
    將得到一個只包含一行的代碼的宏,它在當(dāng)前的單元格輸入公式,該公式引用向上5行,向左5列的單元格:

 

Sub 宏1()
    Selection.FormulaR1C1 = "=R[-5]C[-5]"
End Sub

    現(xiàn)在將單元格指針移到A1并運行剛才的宏,你可能會認(rèn)為將導(dǎo)致運行錯誤1004,但實際并沒有出現(xiàn)這種錯誤。運行宏時,單元格A1中的公式指向=XF1048572(Excel2003指向=IR65532),這意味著R1C1公式從表的左側(cè)繞回到右側(cè)。這是一個很有趣的行為,但是可能宏將提供一個與用戶期望不同的結(jié)果?。。。。?!
    乘法表實例:

 

    六、條件格式中的R1C1樣式應(yīng)用

    設(shè)置條件格式時,必須使用R1C1公式,這很重要。文檔沒有明確之處這一點,但如果不用R1C1公式,有時可能出問題,有研究發(fā)現(xiàn),如果用A1公式,每對 50個單元格設(shè)置條件格式,將有一個單元格出現(xiàn)奇怪的行為。因為將A1引用轉(zhuǎn)換為R1C1引用有時存在二義性,例如,R2表示一個單元格,但可能被錯誤理解為整個第二行。
    FormatConditions對象用于設(shè)置條件格式。每個單元格可以有3個FormatConditions,下面的代碼首先遍歷所有工作表,刪除每個工作表中的條件格式,然后遍歷每個工作表中所有的非空單元格,并應(yīng)用兩種條件格式。
    在第一種條件格式中,類型為xlExpression,這意味著使用的是“公式”語法。首先Foumula1指定的公式采用的是R1C1表示法。
    第二個條件格式使用xlCellValue類型,這需要指定一個運算符和一個值。在添加條件后,為條件1和條件2設(shè)置字體的ColorIndex

 

Sub ApplySpecialFormattingALL()
    For Each ws In ThisWorkbook.Worksheets
        ws.UsedRange.FormatConditions.Delete
        For Each cell In ws.UsedRange.Cells
            If Not IsEmpty(cell) Then
                '單元格值是任意錯誤值時,
                '把字體顏色設(shè)置為與單元格底色相同的顏色(即看不出錯誤值)
                cell.FormatConditions.Add Type:=xlExpression, Formula1:="=or(ISERR(RC),isna(RC))"
                cell.FormatConditions(1).Font.Color = cell.Interior.Color
                '單元格值小于0的,全部用紅色字體標(biāo)出
                cell.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, Formula1:="0"
                cell.FormatConditions(2).Font.ColorIndex = 3
            End If
        Next cell
    Next ws
End Sub

    一個演示條件格式的經(jīng)典實例,顯示包含最小值和最大值的行。代碼如下:

 

Sub FindMinMax()
    Finalrow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
    With Range("a2:c" & Finalrow)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=rc3=max(c3)"
        .FormatConditions(1).Interior.ColorIndex = 4  '用綠色底紋標(biāo)出
        .FormatConditions.Add Type:=xlExpression, Formula1:="=rc3=min(c3)"
        .FormatConditions(2).Interior.ColorIndex = 6  '用黃色底紋標(biāo)出
    End With
End Sub

    如果設(shè)置一個指向單元格C3的條件格式,這種格式將失敗,因為Excel將C3解釋為第3列。

    七、VBA中的R1C1樣式數(shù)組公式

    數(shù)組公式必須是R1C1公式。
    數(shù)組公式是功能強大的“超級公式”,被稱為CSE公式,因為用戶必須按Ctrl+Shift+Enter鍵來輸入它們,如:
    =SUM(A$2:A7*B$2:B7)這是個數(shù)組公式,很好理解。
    雖然在用戶界面中顯示A1樣式,但輸入數(shù)組公式要使用R1C1表示法:

 

Sub EnterArrayFormulas()
    Finalrow = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(Finalrow + 2, 2).Value = "乘積和"
    Cells(Finalrow + 2, 3).FormulaArray = "=sum(R2C[-2]:R[-2]C[-2]*R2C[-1]:R[-2]C[-1])"
End Sub

 
上述代碼中的:
Cells(Finalrow + 2, 3).FormulaArray = "=sum(R2C[-2]:R[-2]C[-2]*R2C[-1]:R[-2]C[-1])"
可以簡化為:
Cells(Finalrow + 2, 3).FormulaArray = "=sum(R2:R[-2] C[-2]*R2:R[-2] C[-1])"
后面有介紹,但要注意:紅色藍(lán)色代碼之間有一個空格。


   【小技巧】可以采用下面的方法快速輸入R1C1公式:
    在任何單元格中輸入常規(guī)的A1公式或數(shù)組公式,選擇該單元格并切換到VBA編輯器。然后按Ctrl+G鍵打開立即窗口,再輸入:
    Activecell.FormulaR1C1 或者
    Print Activecell.FormulaR1C1
    并按回車鍵,Excel將把公式欄中的公式轉(zhuǎn)換為R1C1樣式。

    以下內(nèi)容來自第二個帖子,點擊這里可以查看原文。

    單元格引用有A1和R1C1兩種形式,兩種形式中又包含了絕對引用和相對引用兩種不同的變化。

    單個區(qū)域的引用:
    先來講一下R1C1方式的引用
    對于G2:J2這樣一個單元格區(qū)域,使用R1C1來引用,可以寫作:R2C7:R2C10,也可以寫作:R2C10:R2C7。但R必須在C前面,“C10R2:C7R2”這樣的寫法是無效的。

    對于這樣單行的區(qū)域引用,可以使用簡寫的引用方式,即將R2C7:R2C10中的紅色部分省去,簡寫為R2C7:C10。
    如果對于單列的區(qū)域引用,例如G2:G10,則可以將R2C7:R10C7中的紅色部分省去,簡寫為R2:R10C7。
    為什么可以這樣簡寫,這樣的簡寫有何規(guī)律?在沒有官方的解釋之前,為了便于大家的理解和記憶,我給出一個我自己的解釋思路,請看下面的“關(guān)于引用運算符”:

    關(guān)于引用運算符:
    Excel中包含了3種引用運算符,用于表示對單元格的引用,
    一種是冒號,稱為區(qū)域運算符,這是最常見的,如=sum(A2:B10),表示引用冒號兩邊單元格所圍成的矩形區(qū)域;
    一種是逗號,稱為聯(lián)合運算符,如=RANK(A1,(A1:A10,C1:C10)),表示同時引用逗號兩邊的兩個區(qū)域;
    還有一種是空格,稱為交叉運算符,表示引用空格兩邊的兩個區(qū)域的交集,如=SUM(A1:B5 A4:D9)即等價于=SUM(A4:B5)。這個交叉運算符也是我這里要重點引入的一個使用技巧。

    對于G2:J2這個單元格區(qū)域,如果換一個角度來看,可以看作是G:J這4列與第2行所構(gòu)成的交叉區(qū)域。因此,如果用交叉運算符和R1C1樣式來引用的話,可以寫作:R2 C7:C10,即表示R2與C7:C10這兩個區(qū)域的交叉區(qū)域。
    因此R2C7:R2C10等價于(R2 C7:C10),而這個形式與上面的簡寫形式R2C7:C10十分相似;
    同理,G2:G10可以表示為R2C7:R10C7,等價于(R2:R10 C7),這個形式于其簡寫形式R2:R10C7也十分相似。

    以上就是對于同行或同列的R1C1引用簡寫方式的一些理解,但這個題目中真正起到大作用的并非那個簡寫方式(雖然也可以縮短不少字符),而是引入交叉運算符以后的引用方式。請繼續(xù)往下看。

    交叉運算符同樣也可以應(yīng)用在A1引用方式中:
    例如(R2 C7:C10)如果使用A1引用方式,則可以寫作:(2:2 G:J)
    (R2:R10 C7)如果使用A1引用方式,則可以寫作:(G:G 2:10)
    從現(xiàn)在的樣子看上去,好像A1引用方式更簡短,但聯(lián)系題目的實際情況,經(jīng)過代入后的比較最終可以發(fā)現(xiàn)還是R1C1引用方式更合適,關(guān)于這一點可以留到后面再看。

    多個區(qū)域的引用:
    題目最終結(jié)果要求同時超級鏈接到3行最多喜字的區(qū)域,這就意味著需要同時對多個區(qū)域進(jìn)行引用,
    以同時引用G13:J13、G15:J15、G17:J17這三行區(qū)域為例,
    使用R1C1的通常寫法是:
    R13C7:R13C10,R15C7:R15C10,R17C7:R17C10 其中的逗號表示聯(lián)合運算
    可以引入交叉運算符,簡化為:
    R13 C7:C10,R15 C7:C10,R17 C7:C10
    此時,來做一個類似于合并同類項的變形,可以簡化為:
    (R13,R15,R17) C7:C10
    將幾個行號用逗號相連接表示聯(lián)合運算,同時外面用括號包圍以后,再與C7:C10區(qū)域使用空格進(jìn)行連接,形成交叉運算關(guān)系,得到了我們所需要的三個行區(qū)域的同時引用。

    這個引用方式就是我的公式中最終所取用的最簡短的引用方式。
    可以跟A1引用方式做個比較,上述區(qū)域的A1引用寫法為:(13:13,15:15,17:17) G:J,結(jié)合題目的實際情況,可以比較得出A1形式寫法的字符代價要遠(yuǎn)高于R1C1的形式。

    至于我兩個公式中(R00!,R00!,R00) C7!:C33(R0R000R00,0) C7!:C33兩種不同Text函數(shù)自定義格式的區(qū)別,主要在于后面這種格式利用了數(shù)字格式中的千分位符可以自動生成“逗號”的便利,從本質(zhì)上來說兩者的單元格引用方式是一致的。

    寫了這么多,也不知道大家能否看懂,如果結(jié)合下面這個附件,相信可以更容易理解一些:

    附件:單元格引用.rar


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Excel之VBA常用功能應(yīng)用篇:新建條件格式方法
Excel讓選定單元格所在行和列顏色突出高亮顯示
Excel揭秘4:不一樣的R1C1引用樣式
excel如何設(shè)置公式和excel 公式入門知識
Range對象基本操作應(yīng)用示例
EXCEL公式運算符有哪些
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服