値を分割せずに 1 つのセル内の複数のデータ値を操作する方法はありますか?

値を分割せずに 1 つのセル内の複数のデータ値を操作する方法はありますか?

コストを作成したい「ミックス」が複数あります。現在、各ミックスはわかりやすくするためにセルにコンポーネント形式で表示され、ユニット数はテーブル内の別の列にあり、ユニットあたりのコストはワークブックの別のシートで個々のコンポーネントに分割されています。

例 シート 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」です。また、シート 2 のセル B16 以外ではどこにも示されていない、単位あたりに適用したい一般的な混合コスト「.25」があります。

現在、列 E の各数式を手動で設定していますが、時間がかかり、エラーが発生する可能性があります。セル E2 の例は「=3*(1*.05+.25*.08+1*.1+.25)」です。

私が考えた 2 つのオプションは、ミックス 1、ミックス 2、ミックス 3 を表示するミックス列を作成し、次に単位あたりのコストを定義して、それを掛け合わせて各組み合わせの一意のミックスを作成することです (現在、ミックスは約 15 種類あり、増え続けています)。たとえば、列 F はミックス コストなので、E2 の数式は "=C2*F2" になります。私の質問は、データを印刷するときに列 F を非表示にしたいので、列 D のデータに基づいてこの列を自動的に入力する IF() ステートメントを使用できるかどうかです。また、データを入力するときに列が非表示になっていると、シート内を移動しやすくなります。

もう 1 つのオプションは、列 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 行目 (最後の行) を「コピーダウン」して、7 行 (6 つのコピー) を作成します。

3 行目の数字を変更して何が起こるか確認します。

「Mix」の下の表では、次の処理が行われます。
列 A - 行の位置に基づいて 2 進数を作成します (最初の行は 001、7 番目の行は 111)。
列 B、C、および D - 列に対応する位置の 2 進数字を選択し、それを「数値」にして計算できるようにします。
列 E - SUMPRODUCT()「ミックス」コストを計算するために使用します。

SUMPRODUCT(Array1, Array2, ...)
Array1 と Array2 の最初の要素を乗算し、要素 2 に対しても同じ操作を行って加算し、次に要素 3 を加算する、というように繰り返します。

2 つだけではなく、複数の配列を処理できますが、制限があります。

上記の csv ファイルでは、3 行目が「コスト」の配列であり、6 行目から始まる行が「選択」配列として使用されて、3 つのアイテムに対して 7 つの可能な混合コストが作成されます (3 つのアイテムに対して 2 の 3 乗行、少なくとも 1 つが選択されている)。

*数式:
COLUMNS 引数を変更するだけで、列を変更してより多くの項目を処理できます。B
列は「任意の」数の列にコピーできます (csv ファイルには 3 つあります)。
ただし、「任意」は列 A の「DEC2BIN」によって制限され、Excel では 10 桁しか生成できません。
それに応じて列 E も調整する必要があります。これは、自分で完了する最終タスクとして残しておきます。実際にはそれほど難しくはありません。

この 6 行目ができたら、必要な行数だけコピーできます。最後の行では、ミックス テーブルのすべての行に「1」が含まれている必要があります。

関連情報