マンガでよめる痔のこと・薬のこと

エクセルに数値データがあるのですが、それを1行ごとに検索値をおいて行ごとにその値±2の範囲に該当する数値に色付きセルにしたいです。

A日付   B検索値 C数値  D数値  E数値・・・
20141201  4.4  5.5   10.9   -0.2
20141202  -1.2  3.3   -2.8   14.2

という感じです。最初の行なら、2.4-6.4の範囲に該当するCの5.5を色づけ。
2行目は-3.2-0.8の範囲にあるDの-2.8を色づけという風にしたいです。

どのようにしたらいいのでしょうか?

A 回答 (3件)

こんばんは!


Excel2007以降のバージョンをお使いだとして・・・

C2セル以降色を付けたいセルを範囲指定 → 条件付き書式 → 新しいルール → 「数式を使用して・・・」 → 数式欄に
=AND(C2<>"",C2>=$B2-2,C2<=$B2+2)
という数式を入れ → 書式 →「塗りつぶし」から好みの色を選択しOK
これで大丈夫だと思います。

※ Excel2003までの場合もほとんど同じ方法で大丈夫ですが、
書式 → 条件付き書式 → 「数式が」を選択 → 同じ数式を入れ → 書式 → パターン → 好みの色を選択。
といった流れだったと思います。。m(_ _)m

この回答への補足

早々にご回答ありがとうございます。1行だけなら、ご回答いただいた通りでできたのですが、これを1行ずつ設定しないといけないでしょうか? 数百行あるのですが・・・

補足日時:2014/12/01 23:27
    • good
    • 1
この回答へのお礼

できました。どうもありがとうございます。助かりました!

お礼日時:2014/12/05 17:57

No.1です。



>1行だけなら、ご回答いただいた通りでできたのですが、これを1行ずつ設定しないといけないでしょうか?

前回は
>C2セル以降色を付けたいセルを選択・・・
と書いたように、ちゃんと範囲選択後条件付き書式の設定を行えば、問題なくできるはずです。
C2とは範囲指定した最初のセル番地(範囲指定した最左の列、最上の行)です。

範囲が広くて範囲指定が面倒な場合は、C~E列すべてを範囲指定(列番号のC~Eをドラッグ)した後に条件付き書式の設定を行います。
その場合の条件付き書式の数式欄は
=AND(C1<>"",C1>=$B1-2,C1<=$B1+2)
という数式にしてください。

※ C~E列すべてを範囲指定した場合はC1セルが最初のセル番地となるため。あ

これではどうでしょうか?m(_ _)m
    • good
    • 0

添付図参照


セル C2 に次の[条件付き書式]を設定し、この書式のみをセル C3 以右および以下にズズーッとコピーすればOK。
数式が   =AND(C2<>"",C2>=$B2-2,C2<=$B2+2)
パターン色 緑
「エクセル 条件付き書式 1行ごとに検索値」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2014/12/05 17:57

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel 条件付き書式 行ごとに設定したい

既に出ているかもしれませんが、見つからず質問します。
Excel2007を使っています。
条件付き書式についての質問です。

添付の画像のように、
タテ(A列)に商品名、 横(1行目)に店名が並び、
その商品の値段が入力されているとします。

商品(行)ごとに、最安値の料金が、太字+背景黄色 になるようにしたいです。

現在以下の手順で操作しています。

1)画像でいう、2行目に条件付き書式を設定する。
2)B2~D2 をコピーする。
3)B3を右クリックして、「書式のみコピー」する。
4)B4を選択して、ファンクション(F4)を押して、繰り返しています。
  (以降、B5も同じ)


こちらの作業、100行くらいある場合に面倒で困っています。

上記1)の後、右クリックの「書式のコピー」を使うと、範囲が広がるだけで、
商品(行)ごとに、設定することができません。

早い方法は、ありませんでしょうか。
すみませんが、アドバイスをよろしくお願いいたします。

Aベストアンサー

こんにちは!
画像のようにデータはA~D列まであるとします。

B2セル~D列までの好みの行までを範囲指定 → 条件付書式 
→ 「数式を使用して・・・」を選択 → 数式欄に

=AND(B2<>"",B2=MIN($B2:$D2))

として「書式」 → 好みの色とフォントの太字を選択しOK

これでどうでしょうか?m(_ _)m

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Q条件付書式の一括コピーは可能ですか?

A1セルにA費目予算額、B1~L1セルに期別執行高が入っています。期別執行高が、予算額を超えると赤文字になるように条件付書式を設定しています。この条件付書式を、同様の行(A2、B2~L2...A6、B6~L6)に行毎にコピーしたいのです。B1~L1セルを範囲指定した上で、B2にカーソルをおいて「書式貼付」を実行しても、うまくコピーできません。
条件付書式の一括コピーは可能ですか?詳しい方教えてください。

Aベストアンサー

B1~L1を範囲指定してコピーしたら、
B2~L6までを選択して、形式を選択して貼付けの書式をやってみてください。

Q条件付き書式のやり方。隣のセルも色付け。

エクセル初心者です。

(1)B1に特定の文字が入力された場合特定の文字から隣のセル
6つ目まで(B~H)を特定した色になるようにしたいです。
条件付き書式で設定が可能かと思うのですが
やり方が分かりません。

「条件付き書式」→「新しい書式ルール」→「数式を使用して~」
のところで悩んで止まっています。
この設定ではできないのでしょうか?

(2)また、添付画像にはありませんが、たとえばB列のセルに
 「え」または「お」が入った場合、黄色にする、という設定は可能でしょうか?

(3)条件付き書式はいくつまで設定可能なのでしょうか?

どなたか回答お願いします

Aベストアンサー

NO2です。
もう一度、手順を整理します。
(1)色付け範囲を選択。(仮にB:Hを選択)
(2)「条件付き書式」→「新しい書式ルール」→「数式を使用して~」を選択→数式欄に=OR($B1="え",$B1="お")→書式→塗りつぶしタブで黄色を選択→OK

>最初の列しか色付けされない
 ⇒上記の数式欄で絶対参照記号の$が抜けているからです。

>同じ色をは使えない
 ⇒そのようなことはありません。

>(2)=OR($AC1="~)で色がつかない
 ⇒AC:AL列を選択→新しい書式ルール」→「数式を使用して~」を選択→数式欄に=OR($AC1="あ",$AC1="い",$AC1="う")→書式→塗りつぶしタブで色を選択→OK

因みに同一のセル範囲で条件を追加する場合、同一範囲を選択→「条件付き書式」→「ルールの管理」→「新規ルール」→「数式を使用して~」以下同じ

QExcel条件付書式/他のセルの条件での色分け

こんにちは。よろしくお願いします。

条件付書式の設定で困っています。
Excel2010です。

A1セルに「△」を入力すると、
△が入った1行がすべてグレーになるように設定したしたく、

1行目のセルに
「セルの値」が「次の値に等しい」「=A1="△"」
として、あとは書式の色をグレーに設定してみたのですが、
A1に△を入れてみても一向に色が変わりません。

どのように設定すれば、他のセルで入力された条件に対して
色分けすることができるでしょうか?

ちなみにA1セル自体に設定して、△を入力すると
A1だけはグレーに変わりました。

初歩的な質問ですみません。ご指導ください!

Aベストアンサー

>今回A1~A460まであり、ランダムに△が存在しています。

>グレーに変えたい1行もB~CVまであります。

 例えば、A460が△の場合にはB460~CV460の範囲をグレーに変えたいという事ですね。
 それでしたら、「次の数式を満たす場合に値を書式設定」欄に入力する数式は

=A1="△"

ではなく

=$A1="△"

として下さい。
 その上で、条件付き書式が設定されている範囲を、B1~CV460の範囲にまで拡大させる必要があります。
 具体的な操作方法は以下の通りです。

B1セルを選択
  ↓
[ホーム]タブ内の「スタイル」グループの中にある[条件付き書式]ボタンをクリック
  ↓
現れた選択肢の中にある[ルールの管理]をクリック
  ↓
現れた「条件付き書式ルールの管理」ダイアログボックスの中にある、「ルール(表示順で適用)」欄が「数式:=A1="△"」、「適用先」欄が「=$B$1」となっていて、「書式」欄がグレーに塗り潰されている行をクリック
  ↓
「条件付き書式ルールの管理」ダイアログボックスの[ルールの編集]ボタンをクリック
  ↓
現れた「書式ルールの編集」ダイアログボックスの中にある「次の数式を満たす場合に値を書式設定」欄に入力されている内容を

=$A1="△"

に変更する
  ↓
「書式ルールの編集」ダイアログボックスの[OK]ボタンをクリック
  ↓
「条件付き書式ルールの管理」ダイアログボックスの中にある、「ルール(表示順で適用)」欄が「数式:=$A1="△"」、「適用先」欄が「=$B$1」となっていて、「書式」欄がグレーに塗り潰されている行の、「適用先」欄に入力されている内容を

=$B$1:$CV$460

に変更する
  ↓
「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック
  ↓
「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック



 因みに、「一旦、B1セルだけに条件付き書式を設定してから、設定するセル範囲を後から拡大する」のではなく、最初からB1~CV460の範囲に条件付き書式を設定する場合には、以下の様に操作します。

B1セルを選択
  ↓
[ホーム]タブ内の「スタイル」グループの中にある[条件付き書式]ボタンをクリック
  ↓
現れた選択肢の中にある[ルールの管理]をクリック
  ↓
現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック
  ↓
現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択してください」欄の中にある[数式を使用して、書式設定するセルを決定]を選択してクリック
  ↓
現れた「次の数式を満たす場合に値を書式設定」欄に

=$A1="△"

と入力
  ↓
「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック
  ↓
現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック
  ↓
現れた背景色のサンプルの中にあるグレーの四角形をクリック
  ↓
「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック
  ↓
「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック
  ↓
「条件付き書式ルールの管理」ダイアログボックスの中にある、「ルール(表示順で適用)」欄が「数式:=$A1="△"」、「適用先」欄が「=$B$1」となっていて、「書式」欄がグレーに塗り潰されている行の、「適用先」欄に入力されている内容を

=$B$1:$CV$460

に変更する
  ↓
「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック
  ↓
「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック

>今回A1~A460まであり、ランダムに△が存在しています。

>グレーに変えたい1行もB~CVまであります。

 例えば、A460が△の場合にはB460~CV460の範囲をグレーに変えたいという事ですね。
 それでしたら、「次の数式を満たす場合に値を書式設定」欄に入力する数式は

=A1="△"

ではなく

=$A1="△"

として下さい。
 その上で、条件付き書式が設定されている範囲を、B1~CV460の範囲にまで拡大させる必要があります。
 具体的な操作方法は以下の通りです。

B1セルを選択
  ↓
[ホーム]タブ内の...続きを読む

Qexcel:条件付き書式の適用範囲が変わる

指定した文字を打ち込んだ際セルが塗りつぶされるようにしているのですが条件付き書式で指定した範囲が変わってしまうため塗りつぶされなくて困っています
作業は「移動またはコピー」でシートを複製したりセル内の文字を書き換えたりドロップダウンリストから項目を選択するくらいです
複数のPCで同じファイルを開くこともあります(同時ではありません)

原因と対処法を教えてください

Aベストアンサー

添付図では、簡単な条件付き書式を下方にコピーし、コピーした後、セルを1つ削除してみました。意図しない適用先が表示されます。(当方Excel2010です)

このように、コピー&ペーストや削除を行ったタイミングごとに適用先のセル範囲が追加されていきます。一番最初に設定した範囲にセルで挿入したり削除したりする場合は範囲が増減するだけです。


以下、microsoftからです。

Excel 2007 条件付き書式をコピーした場合、以前より条件付き書式が増加する
http://support.microsoft.com/kb/2537195/ja

この中に、
●「原因」として、
 Excel2003までは、条件付き書式は3個までなので、選択範囲に全て同じ条件付き書式が設定されていれば、1つのルールとしてまとめて管理され、Excel2007以降は、範囲ごとにルールが保持されるため、結果、意図しない数の条件付き書式が作成される場合がある。

●「回避策」として、
 [ホーム]タブの[ルールのクリア]-[シート全体からルールをクリア]を選択し、同じ条件を設定するセルを適宜選択し、条件付き書式を設定します。

●「状況」として、
 この動作は仕様です。

との記載があります。

この「回避策」はいつも行っていません。全部クリアして最初からやり直せということですよね。
最初の条件付き書式をコピーして該当先に条件を貼りつけても結果は保障されません。重複で条件設定される場合もあります。


一通り作成が終わると、コピーや削除をしたセルを選択し、[ホーム]タブ>条件付き書式>[ルールのクリア]>選択したセルからルールをクリアを行い、最初に条件付き書式を設定したセルを選択し、「書式のコピー」をして該当セルに貼り付けています。「仕様」と書かれているのでしょうがないですね。(あまりいろんな箇所に設定しないのでできる方法かもしれません)

「書式のコピー」ボタンはダブルクリックすると継続して使えます。ESCかもう一度「書式のコピー」ボタンを押すと解除されます。この機能は結構使っています。


他に、
Excel 2010:条件付き書式コピペの弊害 をググってみてください。

添付図では、簡単な条件付き書式を下方にコピーし、コピーした後、セルを1つ削除してみました。意図しない適用先が表示されます。(当方Excel2010です)

このように、コピー&ペーストや削除を行ったタイミングごとに適用先のセル範囲が追加されていきます。一番最初に設定した範囲にセルで挿入したり削除したりする場合は範囲が増減するだけです。


以下、microsoftからです。

Excel 2007 条件付き書式をコピーした場合、以前より条件付き書式が増加する
http://support.microsoft.com/kb/2537195/ja

この中...続きを読む


人気Q&Aランキング