- ベストアンサー
エクセルで表検索&比較する方法
mitarashiの回答
- mitarashi
- ベストアンサー率59% (574/965)
#2です。 #3さんの回答をを見て気付きましたが、どうせ配列数式を使っているのだから、引き算もそこでやれば良いのですね。 そこを簡略化して、複数該当の場合は列挙する様に改善したものを、一応投稿しておきます。 (回さないと言ったループを結局回さざるをえませんが...) Sub test() Dim srcRange As Range, calcRange As Range Dim difValue As Double Dim refRange As Range, hitRange As Range Dim firstAddress As String Dim counter As Long Sheets("Sheet1").UsedRange.Cells.Interior.ColorIndex = xlNone Sheets("Sheet2").Cells.Clear 'A1を対象セル範囲の左上セルの番地に変更のこと With Sheets("Sheet1") Set srcRange = .Range(.Range("A1"), .Range("A1").End(xlDown).End(xlToRight)) End With Set calcRange = Sheets("Sheet2").Range(srcRange.Address) '比較する数値の入ったセル Set refRange = Sheets("Sheet1").Range("I1") refRange.Offset(2, 0).CurrentRegion.Cells.ClearContents refRange.Offset(4#).Cells.ClearContents calcRange.FormulaArray = "=ABS(" & srcRange.Parent.Name & "!" & srcRange.Address(True, True) & " - " & CStr(refRange.Value) & ")" '再計算防止のため値に変換 calcRange.Value = calcRange.Value difValue = Application.WorksheetFunction.Min(Sheets("Sheet2").Range(srcRange.Address)) Set hitRange = calcRange.Find(difValue, LookIn:=xlValues, lookat:=xlWhole) counter = 0 If Not hitRange Is Nothing Then firstAddress = hitRange.Address Do Sheets("Sheet1").Range(hitRange.Address).Interior.Color = vbRed Do If refRange.Offset(2, counter).Value = "" Then refRange.Offset(2, counter).Value = Sheets("Sheet1").Range(hitRange.Address).Value Exit Do End If counter = counter + 1 Loop Set hitRange = calcRange.FindNext(hitRange) Loop While Not hitRange Is Nothing And hitRange.Address <> firstAddress End If refRange.Offset(4, 0).Value = difValue End Sub
関連するQ&A
- エクセル関数につきまして教えてください。
エクセル関数につきまして教えてください。(過去に同じような質問がございましたら申し訳ございません。) エクセル関数で下記のような表示をしたいです。 表中にある数字の隣のセルに下記のようなランクをつけたいのですが、文字の色やフォントなども変えたいのですが可能でしょうか?? テーブルを下記のようなテーブルもつくったのですが数式がわかりません。 2.0以上 →A(赤文字) 1.9~1.0 →B(オレンジ) 0.9~0.5 →C(緑) 0.4以下 →D(青) 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルについて
A B C D E 1 赤 青 黄 緑 2 ○ 青 3 ○ 黄 4 ○ 赤 5 ○ 黄 以上のような表からE2~E5のセルに同一行の○が付いた名前を出したいのですがどのような関数を使用すればいいのでしょうか。宜しくお願いいたします。
- ベストアンサー
- その他(業務ソフトウェア)
- エクセルでセルの塗りつぶし
お世話になります。セルの塗りつぶしに関して教えてください。 セルC11の色を、セルA3に1を入れると黄色に、2を入れると緑に、3を入れると赤に、さらにA4に1を入れると黄色に、2を入れると緑に、3を入れると赤に、さらにA5に1を入れると黄色に、2を入れると緑に、3を入れると赤に、塗りつぶしたいのですが、どうすればよいでしょう。 セルA3とA4とA5には同じ数字は入らないのと、何も入っていない時は塗りつぶし無しにしたいのです。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 表検索について
次のような表で検索するための関数式を教えてください。 行の見出しに、2,5,7,8,9という数字があり、 列の見出しに、10、20,30,40,50という数字があり 表の中に各行、列に対応した数字を埋めている表があり ます。 こんな感じです。 2 5 7 8 9 10 1.1 1.2 1.3 1.4 1.5 20 1.2 1.3 1.4 1.5 1.6 30 1.3 1.4 1.5 1.6 1.7 40 1.4 1.5 1.6 1.7 1.8 50 1.5 1.6 1.7 1.8 1.9 行が2、列が30だったら、1.3と表示されるようにしたいです。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelのマクロ
Excelのあるセルに、12345という数字があった時、これをマクロ(Visual Basic)を使って赤文字にするのは出来るのです。ただ、1だけ赤、23を緑、45を黄というように、セル内でも数字を分割して扱うことは出来るのでしょうか? もしよろしければ、教えて下さい。
- 締切済み
- Visual Basic
- EXCELでこういうことできますか。
関数と書式設定を使っていいところまではいったのですが、ダメでした。 たとえば、セルA1からA12まで1月~12月を入れます、B1からB12までは成績(適当な数字)が入ります、1番成績の良い月のセルを赤色に塗り、2番目を黄色1番悪い成績の月のセルを青色に塗る。 こんなことできますか、 教えて下さい。
- ベストアンサー
- オフィス系ソフト
- 栄養成分表を探しています。
赤、黄、緑の食べ物の図が描かれたカラーの表かポスターを 探しています。 キッチンにはりたいので大きいものが希望ですが どんな情報でもよいので教えてください。
- 締切済み
- その他(生活・暮らし)
- エクセル2007で予定表を作成しています。
エクセル2007で予定表を作成しています。 当日の2週間前に入力したセルの色を青。 1週間前だと黄色。2日前から当日を挟み4日後を赤。 それ以降は緑で表示させたいのですが、条件付きの書式ルールの作成方法を教えて頂けないでしょうか? よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelにてテーブルからの検索について
又又お知恵を拝借です~ 以下のテーブルから検索をさせたい場合、どういう関数を使えばいいんでしょう?? index関数やらmatch関数でやってみてもうまく表現できないのです。。。 宜しくお願いします。 表1) コード 数値1 数値2 数値3 AB 50 80 150 CD 20 10 30 EF 33 66 98 上記のコード表があり、例えば、あるセルに、20という値が入ったら、20と入ったセルのとなりに、CDというコードを表示させたいんです。 80という値が入ったら、ABというコードを隣に表示という具合に。。。 この表の体型を変えずに何か方法はありますか?
- ベストアンサー
- オフィス系ソフト
- エクセルにて複数の文字を検索後に特定変換
例ですがエクセルのセルA1~A10にそれぞれ1~8の数字が入っている場合1は赤、2は青などに変換したいのですが可能でしょうか? A 1 3 2 1 3 5 4 8 5 1 6 2 7 4 8 6 9 7 10 1 上記の場合 A 1 黄 2 赤 3 緑 4 紫 5 赤 6 青 7 黒 8 白 9 金 10 赤 と言う風に変換したいのですがどのようにしたらよろしいでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます。 今回は、全員の方をベストアンサーとさせて頂きたいのですが、1人しか選べませんので、先着順によりweb2525様をベストアンサーとさせていただきます。 すばらしい回答をありがとうございました。