4番目のエントリの条件付き書式


0

重複したエントリのセルの色を変更する方法はわかっていますが、4番目のエントリごとに色を変更する方法はありますか。値は不明な番号になります。同じコンボが4回入力されるたびに強調表示したい、文字コンボ。

ご協力ありがとうございます

私は手動で文字/数字コンボのC020、G020、B004と4回目の繰り返しを強調しました。 F028

ご覧のとおり、繰り返しは必ずしも同じ行、または4列の後には発生しません。

http://s000.tinyupload.com/?file_id=56226468952646159686


5回目の繰り返しが強調表示されるべきではないということですか? 4回の繰り返し、次に8回の繰り返しなどを強調表示する必要がありますか。
patkim

例のデータを提供できますか?ご覧ください 依頼方法 そして私達を取りなさい ツアー あなたの質問を改善する方法を学ぶために。
Burgi

ありがとうpat2015、それは正しいです、5日から7日は強調表示されないでしょう、8日はそうだろう
James

どのプログラムを使用していますかあなたはそれが4の倍数であるかどうか見るために行番号をテストすることを見ましたか?
fixer1234

こんにちはfixer1234私はExcel 2016を使用しています、関連するデータはグレー表示された列にあります、繰り返しは15日/列の間に起こらないかもしれません、それは7日か10日に起こるかもしれませんなど。現時点では、2つのExcelシートを並べて使用し、すべてのエントリを手動で確認して、同じデータの4番目のイベントを強調表示しています。
James

回答:


0

わからない まさに あなたが欲しいもの、 あなたが提供したサンプルスプレッドシートが あなたの質問とは何の関係もないようです。 あなたは、「関連するデータは灰色の欄にあります」と言います、 ただし、グレー表示された列には値が繰り返されていません。 "RETURN"、 "RETURN / DC"、 "TOTAL"、 "TOTAL / DC"を意味しますか、 これらは排他的に繰り返されます 列をグレーアウト?

しかし、あなたが(混乱させる/不明瞭な)物語形式で提示するデータ 一緒に働く何かをください。 数字は1行目にあるとします。 重複エントリを検出するための手法から始めます。

=COUNTIF($A1:B1,B1)

値の数を数える この 細胞 これまでに並んで現れた そして含む 現在のセル これは、値が最初に現れたときに1になります。 重複の場合は2以上。 しかし、この数が1より大きいかどうかをテストしたくはありません。 4の倍数かどうかをテストします。 だからテスト

=MOD(COUNTIF($A1:B1,B1),4)=0

あなたの条件付きフォーマットのためにちょうど上記の公式を使いなさい、 2番目のセルから

以下では、

  • 1行目はあなたのデータです(質問から)、 上記の2番目の式に基づいて条件付きフォーマット
  • 行2は上記の最初の式です。
  • 行3は上記の2番目の式です。

spreadsheet with OP's data

2行目は1行目の繰り返し回数を示しています。 行3は、行2が4の倍数である列を示します。 (そしてそれらは1行目が色付けされている列です)。


こんにちはスコット、あなたの助けをありがとう、上の行は私がしているものに最も近い見えます。上記の元の質問に、希望する結果のリンクを掲載しました。
James

0

私の理解に基づいて、VBA UDFとHelper Columnを少しだけ使用するソリューションを提案します。

簡単なシートの例を以下にいくつか示します。関連データは列C、E、G& Cにあります。 I.これらの各列の右側には、必要に応じて非表示にすることができるヘルパー列があります。

enter image description here

まずワークシート印刷機に 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が選択されている間に、フォーマットペインタをダブルクリックして、該当するすべてのデータ列にこのフォーマットをペイントします。

enter image description here

ご了承ください。

  • Excelでは、UDFに渡すことができるパラメータの数に制限がある場合があります。次のように宣言されている場合、それがどのように適用されるのか、私はあまりよくわかりません。 ParamArray as Variant
  • 実際に本番用シートに適用する前に、さまざまな条件をシミュレートするサンプルデータを使用してテストワークシートでテストし、これが想定どおりに機能することを確認することをお勧めします。
  • それでも問題がある場合やエラーがある場合はここで更新してください。時間があれば修正します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.