Excelの使い方で質問です。
フィルタをかけて以下のように並び替え(同一のC列の値内でD列の数値を昇順)を行ったのですが、
C D
2 261.22
2 444.27
2 469.27
2.1 259.16
2.1 294.18
2.3 260.23
2.3 261.22
2.3 337.11
・ ・
・ ・
この状態でC列の値の差が±0.1でかつD列の値の差が±0.1であるという条件を満たす行のみをピックアップ(してできればグループごとに色分けも)する方法はありますでしょうか?
大変困っています。よろしくお願いいたします。
A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
こんにちわ。
>Excelの列が260列ほどしかないため
正確には256です。
>列と行を変換しない状態のままで、該当する行を色づけしたい。
ざっくり考えても数百万回検索する必要があるとおもうのですが・・・
そのままだとマクロしかないです。
たしか2000行程と書いてあったかとおもいますが、一度に全部チェックしなくても、分割してチェックすれば256列でもできると思うのですが?
いずれにしても、余りエクセルの関数向きではありませんね^^;
>一度に全部チェックしなくても、分割してチェックすれば256列でもできると思うのですが?
そうなんですが、その256列目付近のデータが分割した次のデータのグループに属する可能性が出てきたりしてややこしいので、やっぱり分割せずにそのままの状態で解析したいんですよね・・・
>ざっくり考えても数百万回検索する必要があるとおもうのですが・・・
そのままだとマクロしかないです。
>いずれにしても、余りエクセルの関数向きではありませんね^^;
なるほど、やはり難しいんですね(^^;色々と考えていただき、どうも有難うございました。
No.9
- 回答日時:
何度も何度ももうしわけないですが、追加で・・・
ピボットテーブルの集計については、私の画像では合計をしようしていますが、それだとCとD両方が同じ値のデータが複数あるときに合計されてしまい、ほしい答えになりません。
フィールドの設定を「平均」、「最大」、「最小」のどれかにしてください。(今回の集計の場合はこの3個はどれも結果が同じになるはずなので、どれでもいいです。)
以上
okdeathさん、御親切な回答どうも有難うございます。
教えて頂いた方法で実行しようとしてみましたが、Excelの列が260列ほどしかないため、自分が処理しようとしているデータを全て並べることができませんでした。できれば列と行を変換しない状態のままで、該当する行を色づけしたいのですが、やっぱり難しいですよね。
いずれにせよ、御丁寧に回答して頂き、どうも有難うございました。
No.8
- 回答日時:
すみません。
結果がおかしくなってました。3度目の正直です。(ミスしててごめんね(TT))
数式を訂正してみました。
D4 : =IF(AND(E6-D6<=0.1,D6-C6<=0.1),11,IF(E6-D6<=0.1,1,IF(D6-C6<=0.1,10,0)))
B7 : =IF(AND(C8-C7<=0.1,C7-C6<=0.1),11,IF(C8-C7<=0.1,1,IF(C7-C6<=0.1,10,0)))
条件つき書式 : D7で「数式が」を選択し、=AND(D7>0,AND(D$4>0,$B7>0),OR(D$4=$B7,D$4=11,$B7=11))
で、下図のようになります。
こんどこそー><b
No.7
- 回答日時:
ごめんなさいね。
画像では式が見えないようです。
D4 : =IF(OR(E6-D6<=0.1,D6-C6<=0.1),1,0)
B7 : =IF(OR(C8-C7<=0.1,C7-C6<=0.1),1,0)
条件つき書式 : D7で「数式が」を選択し、=AND(D7>0,AND(D$7,$B7))
です。
No.6
- 回答日時:
こんにちわ。
回答を考えている間に他の人が答えているようですね。
まあ、私なりに回答します。
まずピボットテーブルで横にC列、縦にD列を入れ、データにD列を入れます。
↓
C列とD列を昇順で並べ替えます。
↓
ピボットテーブルをコピーし、値で貼り付けます。
↓
下画像の「ダミーの数字を入力」のとおり、3箇所入力してください。
(999999は適当です。C又はD列の一番大きい数より大きい数字にしてください。)
↓
下画像のIF文2箇所(D4とB7です。)を入力し、それぞれ横又は縦にデータのあるだけコピーペーストしてください。
↓
D7のセルを選択し、書式→条件付書式を呼出し、画像のとおりの条件を入力してください。
↓
D7をコピーし、対象データ全てを選択し、形式を選択し貼り付け(書式)をペーストしてください。
↓
下画像のとおり、色がつきます。
こんな感じでどうでしょう?
No.5
- 回答日時:
グループに別けるのは設問に無理がありますので、各行のE列以降に、条件に一致する行番号を表示するようなマクロを書いて見ました。
表がC1から始まる事にしてあります。
サンプルですので、変数宣言も結果を格納する配列だけですし、エラー処理も行って居ません。
ご参考までに
Sub sample()
Dim chkGr() As Long
lastRow = Range("C1").End(xlDown).Row
For i = 1 To lastRow
ReDim chkGr(0)
colC = Range("C" & i)
colD = Range("D" & i)
count = 0
For j = 1 To lastRow
If (i <> j) * (Abs(colC - Range("C" & j)) < 0.1) * (Abs(colD - Range("D" & j)) < 0.1) Then
ReDim Preserve chkGr(count)
chkGr(count) = j
count = count + 1
End If
Next j
If count > 0 Then
Range(Cells(i, 5), Cells(i, 4 + count)).Value = chkGr()
End If
Next i
End Sub
mt2008さん、ご回答有難うございます。
せっかく教えて頂いたのですが、あいにく当方エクセル初心者のため、レベルが高すぎます・・・(^^;
プログラミングなしで処理する方法などはないでしょうか?
いずれにせよ教えて頂きありがとうございました。
No.4
- 回答日時:
》 大変困っています。
よろしくお願いいたします。そういうことなら、「C列の値の差が±0.1でかつD列の値の差が±0.1であるという条件を満たす行」が一つもない例を示すのでなく、当該条件を満足する数値例および当該例の場合はどのセルとどのセルが着色されることを示してください。
この回答への補足
mike_gさん、コメントどうも有難うございます。例えば以下のようなデータがあった場合、
14.7256.19
22.5256.23
35.9257.2
48.6257.21
55.9257.22
66257.22
78.1257.22
88.1257.22
98.6257.23
108.1257.25
118.6258.2
128.1258.24
133.4259.08
3,5,6行目と7,8,10行目が着色されるということを想定しています。ただ、書き忘れていましたが、条件を満たす行が4,9行目のように2つしかない場合、処理しなくてはいけないデータの量からして該当する行が大量に出てきますので、可能なら該当する行が3つ以上のものだけをピックアップする方法があれば望ましいのですが・・・
また何かご不明の点がございましたら御連絡下さい。
No.3
- 回答日時:
技術的にはともかく、論理的に困難だと思われます。
例として、
C列、D列とも0.05ずつ増加していく単純なデータ群があったとすると、順に3個ずつのデータがご質問の条件に合うグループを構成することになります。実は、3番目以降のデータはみな同様の条件になります。
データのindexで書くとして、(1,2,3)、(2,3,4)、(3,4,5)…といったグループが考えられますが、この場合3番目のデータは3種類の(異なる)グループに属することになるので、どのグループとしてピックアップすればよいのか不明ですし、所属するグループを一つに特定することはできないので、色分けも(3色の混合ならいざ知らず)できないのでは?
(±0.1の両端を含む含まないで若干変わりますが、主旨は違うところにあるので…)
実際のデータでは、そのようなことが起こることはまれなのかも知れませんが、論理的には一つのデータが何グループにでも所属可能なのでグループを特定することは無理ではないでしょうか?
上記のグループ(組み合わせ)を全てリストアップするとかなら不可能ではないと思いますが…
この回答への補足
fujillinさん、ご回答有難うございます。
>この場合3番目のデータは3種類の(異なる)グループに属することになるので、どのグループとしてピックアップすればよいのか不明ですし、所属するグループを一つに特定することはできないので、色分けも(3色の混合ならいざ知らず)できないのでは?
仰るとおりです。自分もこの点を忘れていました。
>上記のグループ(組み合わせ)を全てリストアップするとかなら不可能ではないと思いますが…
ではそのような方法はございますでしょうか?質問ばかりですみません。
No.2
- 回答日時:
>C列の値の差が±0.1でかつD列の値の差が±0.1であるという条件
n行目とn+1行目の差がそれぞれ提示どおりという意味ならば
セルE2に =C3-C2
セルF2に =D3-D2
を入力し、範囲にコピー→オートフィルタで確認でいかが?
この回答への補足
Sinogiさん、ご回答頂き有難うございます。
私の理解不足かもしれませんが、教えて頂いた方法では、隣接する行の間のみしかチェックできないのではないでしょうか?
そうではなくて、隣接しない行も含めて全てのセルでスクリーニングをしたいのですがいかがでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 条件付き書式について 1 2022/12/14 20:38
- Excel(エクセル) エクセル・スプレッドシートで、一定数を超えたらゼロから再累計する方法 8 2022/05/28 03:52
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Excel(エクセル) Excelについて 3 2023/07/12 17:47
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える 5 2022/06/17 18:03
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報