[英]How to multiply values within a nested array…times values in an another array (in Google Sheets)?
這很難解釋,所以我的標題很爛,這只是我對如何解決這個問題的最佳猜測。 我有一份關於各種瓶裝康普茶的谷歌銷售數據表。 E 列是銷售日期,G 列包含項目代碼,J 列是上述案例的銷售數量。 查看我的(大大簡化的)示例數據:
https://docs.google.com/spreadsheets/d/17-LzGrNJtBr-FwOZtdaoCws3ayeGOHu_TdtGOfXj4cA/edit?usp=sharing
請參閱下面我當前的測試代碼(也存在於鏈接電子表格的“公式”選項卡中)。 它成功地為我提供了半升瓶子和咆哮者的總銷量。 E4 和 E5 中的值分別是包含我的開始日期和結束日期的單元格,因此我將結果限制在特定日期范圍內。
這段代碼有效,但現在我需要找出一種方法來計算售出的瓶子總數而不是箱數。 數據集已經非常龐大,並且突破了 google 表格的限制,因此在源數據表中添加一個列,其中包含每箱瓶數 # 是不可行的。 半升的箱子可容納 13 瓶,而咆哮者可容納 5 瓶。我目前的方法有沒有辦法做到這一點,也許使用另一個陣列? 或者任何其他使公式盡可能簡單的方法?
僅供參考,當前公式是概念證明,我將在現有公式中添加許多其他類型的箱子,每個箱子包含不同數量的瓶子,並將其用作更大的動態公式的一部分,允許您在之間切換顯示 # 個案例 vs # 個瓶子 vs # 實際售出的升數,所以這就是為什么我希望找到一種基於數組的方法,它可以讓我做到這一點,而無需求助於嵌套 IF 語句的荒謬冗長和復雜的公式。
=SUMPRODUCT(--((XeroInvoiceData!$E$3:$E>=B4)*(XeroInvoiceData!$E$3:$E<=B5)), (--(ISNUMBER(MATCH(XeroInvoiceData!$G$3:$G, {"HalfLiterCase","GrowlerCase"}, 0)))), XeroInvoiceData!$J$3:$J)
我將永遠感激任何幫助。
這是我的解決方案: https://docs.google.com/spreadsheets/d/1ig0krumJu4Lj9-nIKJyRfPLTYbU-mzOL0JokRUDEqNc/edit?usp=sharing
我的想法是按日期過濾您的表格並按容器類型求和。 我還希望允許包含較小單位(瓶子或升)的新型容器。
我把這份工作分為三個階段。
首先,我們必須根據選定的日期和容器類型過濾此表。 我准備了一個可以擴展的列表(您需要的只是擴展過濾器范圍)。
然后我必須在每個容器中查找單位的值,並嘗試在同一個公式中進行。 總體思路是
={[query results],arrayformula(ifna(vlookup([first column of query],$C$21:$D$26,2,0)*[second column of query])}
我把它分為2個階段。 第一階段是指相鄰表中的查詢結果:
第二階段使用查詢索引,因此公式很長:
告訴我它是否能解決你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.