我正在使用 Excel 2010 並建立一個工作簿來定義商店中產品的詳細資訊(包括類別、價格、配件)。我還想定義預設類別詳細信息,以便在產品的具體詳細信息留空時使用。
我設定了三個工作表:Products、CategoryDefaults 和Calculated。列是產品/類別詳細信息,每個項目/類別都有自己的行。我還想盡可能多地使用命名列以提高可讀性。以 P 開頭的列名稱是產品詳細信息,以 D 開頭的列名稱來自 CategoryDefault 表。
計算中的欄位類似於以下內容:
=IF(Products!G2="",
INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)),
Products!G2)
其中 DPRICE 是預設定價的命名列,DCAT 是 CategoryDefaults 表的類別名稱。
公式意義如下:如果產品編號 2 G 列為空,則在 CategoryDefault 表中尋找 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 行。