2

グループに分けられた学生 ID を持つテーブルがあります。各グループの学生の総数を数え、各グループの最後の行 ( でマーク??)の後に入力する便利な方法が必要です。

ここに画像の説明を入力

現在、私は入力=COUNT()してから、各グループの範囲の上下の境界を手動で把握しています。まったく便利ではありません。

可能な解決策は次のいずれかであると考えていました。

  1. ある種のピボット テーブルの順列。私はこれで失敗しました。
  2. Excelデータ -> アウトライン -> 小計関数。繰り返しますが、失敗します。テーブルに新しい行を作成し続けます。
  3. 各セルに貼り付けることができる普遍的な数式。??最も優雅な解決策ではありませんが、それでも解決します。
  4. マクロ. _ 他に何もうまくいかない場合の最後の救済策として。
4

3 に答える 3

3

次の手順では、ワークシートの構造と書式設定を維持しながら小計を計算します。

  1. この数式をセル C1 に入力し、数式を列の下にコピーします。

    =IF(NOT(ISERROR(SEARCH("Total",A1))),COUNTA(INDIRECT("B"&MATCH(LEFT(A1,LEN(A1)-7),A:A,0)+1&".B"&(MATCH(A1,A:A,0)+1))),IF(B1="","",B1))
    
  2. 数式ルール =(MOD(ROW(C1),2)=0) を使用してセル C1 に条件付き書式を適用し、他の行の陰影と一致するように青色の塗りつぶしを適用します。Paste Special Format を使用して、列の下にフォーマットをコピーします。

  3. 列 B を非表示にするか、[特殊な値の貼り付け] を使用して列 C の値を列 B にコピーし、列 C を非表示にします。値を列 B にコピーする場合は、条件付き書式を設定する必要はありません。

式の機能は次のとおりです。

  • 最初に、SEARCH 関数を使用して、行の列 A のセルで「合計」という単語を検索して、数式の行が合計行であるかどうかを確認します。

    「Total」という単語が見つかった場合:

    その合計行のグループの学生 ID のワークシートの範囲を決定します。

    a) MATCH 関数を使用して、「GroupX」および「GroupX Total」という単語が含まれる行を特定します。これで、グループの ID が、たとえば、行 x で始まり行 y で終わる範囲にあることがわかります。

    b) 開始行番号と終了行番号を使用して、ID が存在するアドレス範囲を作成します。これは、文字列 "B" + (行 x) + "." でなければなりません。+ "B" + (行 y)。

    c) INDIRECT 関数を使用して、文字列を数式で実際に使用できる範囲参照に変換します。

    COUNTA 関数と範囲を使用してグループ内の学生の数を数え、数式の結果として表示します。

    「合計」という単語が見つからない場合

    列 B のセルが空かどうかを確認する

    a)空の場合、式の結果として空白を表示します

    b) 空でない場合は、学生 ID でなければならないので、式の結果として ID を表示します。

于 2012-12-22T02:21:43.573 に答える
0

あなたがこのようなテーブルを持っているなら

学生ID学生グループの名前.......。

次に、countif/countifs式を使用できます

于 2012-12-23T20:23:06.860 に答える