2

サイトを検索しましたが、私の問題に合ったものは見当たりません。

私は7つの列を持っています

ユーザー ID セッション 1 セッション 2 セッション 3 セッション 4 セッション 5 セッション 6

セッション 1 ~ 6 内では、ユーザーが「出席」したか「不在」であったかを表す P または A があります。このマスター データに基づいて、この右側にさらに 6 つの列を作成し、同じ見出しと入力 IF ステートメントを =IF(B2="P","",B$1) にして、セッションを表示します。ユーザーがそのセッションを欠席した場合の ID。

次に、すべてのユーザーの不在セッションを 1 つの列に含める必要があり、それをコンマで区切る必要があります。私がうまくいかないのは、セルが空白であるカンマを重複させずにこれを取得する方法です。

何か案は?

ありがとうジェームズ

4

1 に答える 1

1

リンクCPearsonConcatenationページにあるStringConcatUDFを取得します。コードを最初からFunction StringConcat(Sep As String, ParamArray Args()) As Variant最後までコピーし、VBAの一般モジュールに貼り付けます。これを行う方法がわからない場合は、すべてを説明しているこのリンクを参照してください。

このUDFは空白を無視し、任意の範囲を選択した区切り文字/区切り文字で連結します。

あなたの解決策は単純に

=StringConcat(", ",H2:M2)

不明な点がある場合はお知らせください。

代替ソリューション:

または、数式を次のように変更します。

セルH2に、の代わりに=IF(B2="P","",B$1)次の数式を入力します

=IF(B2="A",B$1&", ","")

この数式をM2までコピーし、必要な数の行を下にコピーします。ここで、セルN2に次の数式を入力します。

=IF(LEN(H2&I2&J2&K2&L2&M2)>2,LEFT(H2&I2&J2&K2&L2&M2,LEN(H2&I2&J2&K2&L2&M2)-2),"")

お役に立てれば。

于 2012-04-23T12:53:57.337 に答える