Excel 2010:如何使用定義的欄位名稱和行號來引用特定欄位?

Excel 2010:如何使用定義的欄位名稱和行號來引用特定欄位?

我正在使用 Excel 2010 並建立一個工作簿來定義商店中產品的詳細資訊(包括類別、價格、配件)。我還想定義預設類別詳細信息,以便在產品的具體詳細信息留空時使用。

我設定了三個工作表:Products、CategoryDe​​faults 和Calculated。列是產品/類別詳細信息,每個項目/類別都有自己的行。我還想盡可能多地使用命名列以提高可讀性。以 P 開頭的列名稱是產品詳細信息,以 D 開頭的列名稱來自 CategoryDe​​fault 表。

計算中的欄位類似於以下內容:

=IF(Products!G2="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
Products!G2)

其中 DPRICE 是預設定價的命名列,DCAT 是 CategoryDe​​faults 表的類別名稱。

公式意義如下:如果產品編號 2 G 列為空,則在 CategoryDe​​fault 表中尋找 A 列產品 2 的值,並傳回 DefaultPrice。否則返回定義的價格。

到目前為止,這一切都運作良好。我想更進一步:在前面的範例中,Products!G2 指的是第 2 行中產品的價格列。列參考,即“PPRICE”。我會透過呼叫列「PCAT」(產品所屬的類別)來對 Products!A2 進行相同的操作

最終的公式看起來像這樣:

=IF(Products!PPRICE:2="",
INDEX(DPRICE, MATCH(Products!PCAT:2, DCAT, 0)),
Products!PPRICE:2)

我就是無法讓它發揮作用。我嘗試過“應用名稱...”但沒有結果,冒號和 $ 的任何變化都無濟於事。以前有人這樣做過嗎?

答案1

我發現它將INDEX(PPRICE, 2)返回 PPRICE 列中第二行的值。整個程式碼片段將如下所示:

=IF(INDEX(PPRICE, 2)="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
INDEX(PPRICE, 2))

然而,它將是一個絕對值,而不是相對值,如果您將此公式複製並貼上到其他行,它仍然會指向第 2 行。

相關內容