文字列連結などの任意の関数を使用して「小計」を計算できますか?

文字列連結などの任意の関数を使用して「小計」を計算できますか?

小計関数が数値関数 (count、sum、average) ではなく文字列連結である表の「小計」を生成したいと思います。

たとえば、次の表を考えてみましょう。

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

次のような結果がほしいです:

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

私にとって、これは小計の上に「連結」(または「結合」) が乗っかっているように思えます。しかし、Excel が関数型プログラミングを本当に理解しているとは思えません (一部の人が主張していることに関係なく)。では、どうすればこれを実行できるでしょうか (特に、小計の数式をすべて自動的に挿入する [小計] メニュー項目を利用して、これを実行できるでしょうか。ただし、後で数式を編集して、目的の動作を実現する必要がある場合でも)。

実際、Excel は非常に強力で、機能が豊富です。小計以外の方法でこれを実現できますか? (スクリプトを使用しないソリューションが望ましいです)。

また、ツールボックスにあるツールは Excel だけではありません。このテーブルが CSV ファイルにあるとします。標準の Unix ユーティリティ (たとえば、cut? )を使用してこれを行う方法はありますか? おそらくawk処理できると思いますが、どのように見えるでしょうか?

答え1

これは最もエレガントな解決策ではないかもしれませんが、Col1 がソートされることが保証されているという事実に基づいて、これを試してください。

  1. Col2 値の累積連結を保持する列 (C) を追加します。セル C2 の数式は次のようになります。=IF(A2=A1, CONCATENATE(C1, ",", B2), B2)残りのセルにはこれを自動入力できます。

  2. 列 (D) を追加して、最大 (最長) の連結を保持する行、つまり Col1 の各値の最後の行にフラグを設定します。セル D2 の数式は次のようになります。=IF(A2<>A3, TRUE, FALSE)残りのセルは自動入力できます。

    表は次のようになります。

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

  3. TRUE列 D の値でテーブルをフィルタリングします。

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

  4. 列 B と D を非表示にできるようになりました。

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

関連情報