有没有办法可以在一个单元格中操作多个数据值而无需将这些值分开?

有没有办法可以在一个单元格中操作多个数据值而无需将这些值分开?

我有多个“混合”,我想为其创建成本。目前,为了清晰起见,每个混合都以组件形式显示在单元格中,单位数显示在表格中的单独列中,每单位成本则细分为工作簿中单独工作表中的各个组件。

示例 在工作表 1 中,我有以下内容:单元格 C2 为“3”(单位数),单元格 C3 为“2”,单元格 C4 为“4”。单元格 D2 为“1 杯面粉、0.25 杯牛奶、1 个鸡蛋”单元格 D3 为“2 杯面粉、0.33 杯油、2 个鸡蛋”单元格 D4 为“1 杯面粉、1 个鸡蛋”我希望 E 列有一个公式,根据工作表 2 中的价格计算成本,其中单元格 B2 中面粉的成本为“.05”,单元格 B3 中牛奶的成本为“.08”,单元格 B4 中鸡蛋的成本为“.10”,油的成本为“.04”。我还有一个通用混合成本“.25”,我想将其应用于单位,但除了工作表 2 单元格 B16 中没有在其他地方列出。

目前,我正在手动配置 E 列中的每个公式,这很耗时,而且可能会导致错误。单元格 E2 的一个示例是“=3*(1*.05+.25*.08+1*.1+.25)”

我想到两个选项,一个是创建一个混合列,显示混合 1、混合 2 和混合 3,然后定义一个单位成本,我可以乘以该成本,并为每种组合创建一个独特的混合(目前大约有 15 种混合,并且还在增长)。例如,F 列是混合成本,因此 E2 中的公式变为“=C2*F2”。我的问题是,我是否可以使用 IF() 语句根据 D 列中的数据自动填充此列,因为我希望在打印数据时隐藏 F 列,并且如果在输入数据时隐藏该列,浏览工作表也会更容易。

另一种选择是创建一个公式,将 D 列拆分为单个组件,然后使用单个值进行乘法运算,然后隐藏所有单个列数据,公式将显示诸如“=Units*(数据点 1+数据点 2+数据点 3+混合数据点)”之类的内容。我对这种方法的担心是,当我每行计算 3-4 次混合值时,如果我开始有 5-6 种成分,工作表将变得非常大,难以浏览。

任何其他想法或方法都会有帮助。

答案1

您的描述确实很麻烦,
但我相信以下内容会让您了解如何做到这一点......

--- 保存为 .csv 文件并在 excel 或 libreoffice 中打开 ---

,,,,
,项目 A,项目 B,项目 C,总计
,100,10,1,
,,,,
混合,,,,
"=DEC2BIN(ROWS($A$6:A6),COLUMNS($B$2:$D$2))","=VALUE(MID($A6,COLUMNS($B$2:B$2),1))","=VALUE(MID($A6,COLUMNS($B$2:C$2),1))","=VALUE(MID($A6,COLUMNS($B$2:D$2),1))","=SUMPRODUCT($B$3:$D$3,B6:D6)"
--- 文件结束 ---

“向下复制”第 6 行(最后一行),使其成为七行(六份)。

更改第 3 行的数字并观察会发生什么。

下面的“混合”表就是这样做的;
A 列 - 根据行位置创建一个二进制数(001 为第一行,111 为第七行)。B
、C 和 D 列 - 选出与列对应的位置上的二进制数字,使其成为一个“数字”,以便我们可以对其进行计算。E
列 - 用于SUMPRODUCT()计算“混合”成本。

SUMPRODUCT(Array1, Array2, ...)
取 Array1 和 Array2 中的第一个元素,将它们相乘,对元素 2 执行相同操作并添加,然后添加元素 3,依此类推......

它可以处理多个数组,而不仅仅是两个,但是有一个限制。

上面的 csv 文件将第三行作为“成本”数组,然后使用从第 6 行开始的行作为“选择”数组,为三个项目创建七种可能的混合成本(2 的 3 次方行,对于三个项目,至少选择一个)。

*公式:
只需更改 COLUMNS 参数,即可更改 A 列以处理更多项目。B
列可以复制到“任意”数量的列(csv 文件中有三列)。
“任意”受 A 列中“DEC2BIN”的限制,但在 Excel 中只能生成十位数字。E
列也需要相应调整 - 我将把它留作最后一项任务,让您自己完成;其实并不难。

当您有第六行时,您可以将其复制下来以获得所需的行数,最后一行需要在混合表中全部为“1”。

相关内容