SUMIFS/COUNTIFS函數內的間接列引用變化

      網友投稿 902 2025-03-31

      SUMIFS/COUNTIFS函數內的間接列引用變化

      使用Excel朋友都知道,將包含相對列引用的公式復制到其他列時,這些引用也會相應地更新。例如,公式:

      =SUMIFS(C:C,$A:$A,”X”,$B:$B,”X”)

      向右拖放時,將會變成:

      =SUMIFS(D:D,$A:$A,”X”,$B:$B,”X”)

      SUMIFS/COUNTIFS函數內的間接列引用變化

      =SUMIFS(E:E,$A:$A,”X”,$B:$B,”X”)

      等等。

      因此,我們有一個相對簡單的方法,可以從連續的列中獲得條件和。

      但是,如果我們希望增加的單元格區域是間接引用的,那該怎么辦?例如,如果我們使用上述公式版本,但所引用的工作表是動態的:

      =SUMIFS(INDIRECT(“‘”&$A$1&”‘!C:C”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      其中,A1包含要引用的工作表名稱(例如“Sheet1”)。

      當我們向右拖動此公式時,間接引用的單元格區域不會改變。當然,這是完全可以預料的,因為那些“單元格區域”根本不是真正的單元格區域,而只是偽裝成單元格區域的文本字符串,只有通過將它們傳遞給INDIRECT函數才能將其解釋為實際的單元格區域。

      現在的問題是:我們如何修改第一個公式,以便將其向右復制后,依次獲得以下等價的公式:

      =SUMIFS(INDIRECT(“‘”&$A$1&”‘!D:D”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      =SUMIFS(INDIRECT(“‘”&$A$1&”‘!E:E”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      等等。

      可以使用INDEX函數來解決:

      =SUMIFS(INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:C)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      注意,當省略INDEX函數的參數row_num時,會返回整列引用,對于參數column_num也是如此。

      如果A1中的值是“Sheet2”,則:

      INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:C))

      轉換為:

      =INDEX(Sheet2!A:XFD,,3)

      即:

      Sheet2!C:C

      向右復制,公式成為:

      =SUMIFS(INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:D)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      轉換為:

      =SUMIFS(INDEX(Sheet2!A:XFD,,COLUMNS($A:D)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      轉換為:

      =SUMIFS(INDEX(Sheet2!A:XFD,,4),Sheet2!A:A,”X”,Sheet2!B:B,”Y”)

      轉換為:

      =SUMIFS(Sheet2!D:D,Sheet2!A:A,”X”,Sheet2!B:B,”Y”)

      ……

      也可以使用OFFSET函數:

      =SUMIFS(OFFSET(INDIRECT(“‘”&$A$1&”‘!A:A”),,COLUMNS($A:B)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

      其中:

      INDIRECT(“‘”&$A$1&”‘!A:A”)

      轉換為:

      Sheet2!A:A

      而偏移的列數等于:

      COLUMNS($A:B)

      即2,于是傳遞到OFFSET函數后得到:

      Sheet2!C:C

      然而,如果間接引用的不是一個工作表,而是多個工作表,如何處理?例如公式:

      =SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!C:C”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

      其中,“Sheets”是定義的名稱,引用位置為:

      ={“Sheet1″,”Sheet2″,”Sheet3″,”Sheet4”}

      像前面一樣,我們希望向右拖拉時,公式變化為:

      =SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!D:D”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

      =SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!E:E”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

      等等。

      仍然可以使用OFFSET函數:

      =SUMPRODUCT(SUMIFS(OFFSET(INDIRECT(“‘”&Sheets&”‘!A:A”),,COLUMNS($A:B)),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

      其原理與上文所解的單個工作表的版本相同。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么在wps表格中打勾
      下一篇:GaussDB(DWS)工作負載管理實戰
      相關文章
      国产成人精品亚洲一区| 久久精品国产亚洲77777| 亚洲人成高清在线播放| 亚洲国产成人五月综合网| 亚洲首页国产精品丝袜| 亚洲视频免费播放| 亚洲国产精品久久66| 亚洲一区二区三区国产精品| 国产亚洲美女精品久久| 国产成人亚洲综合a∨| 国产亚洲女在线线精品| 亚洲AV永久无码精品一区二区国产| 亚洲午夜电影一区二区三区| 亚洲精品免费视频| 久久综合图区亚洲综合图区| 日韩亚洲欧洲在线com91tv| 亚洲中文字幕无码日韩| 精品亚洲综合久久中文字幕| 亚洲女初尝黑人巨高清| 久久亚洲精品中文字幕三区| 亚洲成Av人片乱码色午夜| 亚洲AV无码1区2区久久| 久久久久久亚洲Av无码精品专口| 91精品国产亚洲爽啪在线观看| 亚洲春色在线观看| ASS亚洲熟妇毛茸茸PICS| 在线观看亚洲AV日韩A∨| 精品久久久久久久久亚洲偷窥女厕| mm1313亚洲国产精品美女| 亚洲人成网站色在线入口| 亚洲中文字幕无码一区| 亚洲国产天堂久久综合网站| 亚洲色av性色在线观无码| 亚洲国色天香视频| 亚洲国产精品日韩在线观看| 狠狠色伊人亚洲综合网站色| mm1313亚洲国产精品美女| 亚洲欧洲自拍拍偷午夜色无码| 亚洲五月六月丁香激情| 亚洲人成网站在线观看播放青青| 亚洲午夜精品一区二区麻豆|