重複したエントリのセルの色を変更する方法はわかっていますが、4番目のエントリごとに色を変更する方法はありますか。値は不明な番号になります。同じコンボが4回入力されるたびに強調表示したい、文字コンボ。
ご協力ありがとうございます
私は手動で文字/数字コンボのC020、G020、B004と4回目の繰り返しを強調しました。 F028
ご覧のとおり、繰り返しは必ずしも同じ行、または4列の後には発生しません。
重複したエントリのセルの色を変更する方法はわかっていますが、4番目のエントリごとに色を変更する方法はありますか。値は不明な番号になります。同じコンボが4回入力されるたびに強調表示したい、文字コンボ。
ご協力ありがとうございます
私は手動で文字/数字コンボのC020、G020、B004と4回目の繰り返しを強調しました。 F028
ご覧のとおり、繰り返しは必ずしも同じ行、または4列の後には発生しません。
回答:
わからない まさに あなたが欲しいもの、 あなたが提供したサンプルスプレッドシートが あなたの質問とは何の関係もないようです。 あなたは、「関連するデータは灰色の欄にあります」と言います、 ただし、グレー表示された列には値が繰り返されていません。 "RETURN"、 "RETURN / DC"、 "TOTAL"、 "TOTAL / DC"を意味しますか、 これらは排他的に繰り返されます 非 列をグレーアウト?
しかし、あなたが(混乱させる/不明瞭な)物語形式で提示するデータ 一緒に働く何かをください。 数字は1行目にあるとします。 重複エントリを検出するための手法から始めます。
=COUNTIF($A1:B1,B1)
値の数を数える この 細胞 これまでに並んで現れた そして含む 現在のセル これは、値が最初に現れたときに1になります。 重複の場合は2以上。 しかし、この数が1より大きいかどうかをテストしたくはありません。 4の倍数かどうかをテストします。 だからテスト
=MOD(COUNTIF($A1:B1,B1),4)=0
あなたの条件付きフォーマットのためにちょうど上記の公式を使いなさい、 2番目のセルから 。
以下では、
2行目は1行目の繰り返し回数を示しています。 行3は、行2が4の倍数である列を示します。 (そしてそれらは1行目が色付けされている列です)。
私の理解に基づいて、VBA UDFとHelper Columnを少しだけ使用するソリューションを提案します。
簡単なシートの例を以下にいくつか示します。関連データは列C、E、G& Cにあります。 I.これらの各列の右側には、必要に応じて非表示にすることができるヘルパー列があります。
まずワークシート印刷機に ALT + F11 VBAエディタにアクセスします。挿入メニューからモジュールを挿入し、その中に次のUDF(ユーザー定義関数)コードを貼り付けます。
Function prmarr(ParamArray arg()) As Variant
Dim arr1
cnt = 0
For i = LBound(arg) To UBound(arg)
cnt = cnt + arg(i).Rows.Count ' get total rows from all ranges
Next i
ReDim arr1(cnt) ' re dim the array for those many total rows
cnt = 0 ' reuse the counter now
'create a one dimentional list of array from all of the above ranges
For i = LBound(arg) To UBound(arg)
For Each cell In arg(i)
arr1(cnt) = cell.Value
cnt = cnt + 1
Next cell
Next i
prmarr = arr1 ' pass this array as return parameter
End Function
これは非常に基本的なVBAコードであり、コード内に検証やエラーチェックがないことに注意してください。水平方向の配列、重なり合う配列、または多次元配列を渡すと失敗する可能性があります。正しく動作させるためには、列配列のみを渡すことを想定しています。
この関数は、可変数の列配列範囲を取り込んで、そこからすべてのセル値を含む1次元配列を返します。これを使用して、データの最初の列から開始セル以降の現在の値の合計発生回数を数えます。
ExcelにVBAコードがあるので、ファイルを.XLSMマクロ有効Excelワークシートとして保存する必要があります。
D1に次の式を入れて、目的の行まで下にドラッグします。
=COUNTIF($C$1:C1,C1)
次のHelper Columnsまで進んでいきます。各Helper列では、式を少し修正する必要があります。構造は変わりませんが、引数の数が増えます。
F2で次の式を入力してを押します CTRL + シフト + 入る 数式バー内から配列数式を作成します。 Excelは配列式であることを示すために、式を中括弧で囲むようになりました。この手順では、配列数式を作成する必要があります。そうしないと、間違った結果が得られます。
=SUM(IF(prmarr(C$1:C$9,E$1:E1)=E1,1,0))
この式を理解してください。 C1:C9とE $ 1:E1をパラメータとしてUDFに渡しています。つまり、前の列と現在の列の最初の値をテスト条件値まで渡し、現在のセルと一致するかどうかを確認します。そうである場合、SUMは最初の列の開始以降、その値の合計数を生成します。目的の行まで下にドラッグします。
同様に、H1の配列式は次のようになります。
=SUM(IF(prmarr(C$1:C$9,E$1:E$9,G$1:G1)=G1,1,0))
等々。
すべての列に対してこれを完了してください。
今度は条件付き書式設定の部分です。
一番最初のセル、つまりこの場合はC1を選択します。 条件付き書式設定に移動 - >新しいルール - >式を使用して、どのセルをフォーマットするかを決定します。
今規則に次の公式を置きなさい
=MOD(D1,4)=0
選択した背景色を選択し、[OK]をクリックしてセルC1に書式設定を適用します。
C1が選択されている間に、フォーマットペインタをダブルクリックして、該当するすべてのデータ列にこのフォーマットをペイントします。
ご了承ください。
ParamArray as Variant