Excel: カンマ区切りの値を動的に抽出し、別のリストから追加された値を返す

Excel: カンマ区切りの値を動的に抽出し、別のリストから追加された値を返す

ユーザーがコンマで区切られた数値のセットを入力し、別の検索コストのリストを入力する状況があります。ユーザーが値を入力すると、別のセルにその合計値が返されます。次のようになります。

[ユーザー入力値][追加コストの戻り値]

コスト検索セル

  1. 100ドル
  2. 200ドル
  3. 300ドル
  4. 400ドルなど

ユーザー入力の例は次のようになります: [1, 4 ] これは [$500] を返します。

現在、未定義の数のカンマを読み取るのに苦労しています。カンマのない入力がない場合は $0 が返される可能性がありますが、カンマ (または上記の例のようにカンマとスペース) で区切られた 200 個の異なる値である可能性があります。

私の考えは、カンマで区切られた値を取得し、各数値を新しいセルに分割し、VLOOKUPを使用してコスト額を取得し、すべてを合計して戻り値を取得することでした。これですべてうまくいきますもしカンマで区切られた未定義の数の値を分割する数式を取得できます。次のようになります。

ここに画像の説明を入力してください

これは数式でも可能ですか? ユーザーは、検索セルに入力して必要な数値を入力する以外に何もする必要はありません。

答え1

この配列数式はCO# IF 文字列の数値で機能するため、--数式内の を削除する必要があります。

これをD2に入力します:

=IF(LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1>=ROW($A1),INDEX(A:A,MATCH(--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW($A1)-1)*99+1,99)),$A:$A,0)),IF(ROW($A1)=LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+2,IF(COLUMN(A$1) = 1, "$",SUM(INDEX($B:$B,MATCH(N(IF(1,--TRIM(MID(SUBSTITUTE($E$1,",",REPT( " ",99)),(ROW(INDEX($AAB:$AAB,1):INDEX($AAB:$AAB,LEN($E$1)-LEN(SUBSTITUTE($E$1,",",""))+1))-1)*99+1,99)))),$A:$A,0)))),""))

Enter ではなく Ctrl + Shift + Enter で確定します。次に、必要なすべての行を処理できる程度に 1 列分コピーして下にコピーします。

リスト内の位置に応じて、さまざまな IF ステートメントによって文字列が分割され、MATCH の 1 つまたはすべての部分が返されます。次に、INDEX に対する相対位置のすべてまたは 1 つが返されます。次に、すべての部分を合計するか、正しい単一の値を返します。

必要に応じて自動的にサイズ調整されます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

関連情報