• ベストアンサー

エクセル男女で色塗り分け

マクロとは、名前しか聞いたことなく、全くわかりません。 が、幾つか行いたい作業があり、効率よく、自動的に行いたいので、良い方法があったら教えてください。 ヘルプで見ても、マクロのことがよくわかりません。 マクロの実行とか編集とか?? どうしたら下のことが簡単にできますか? 1.列に男・女とある表で、男の行だけ青で塗りつぶ  したい。 2.ある列に●が入力されている行には別の列に   「スイカ」という言葉を入れる。 3.数字が入力されているある列の数値が160以上  は赤色表示にしたい。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • daiku164
  • ベストアンサー率34% (151/437)
回答No.9

印刷専用シートを作られては? 先ほどのシートをSheet1として、印刷専用をSheet2にするのはどうでしょうか、 まず、左下のSheet1のタブの上で右クリック→移動又はコピー→ 下のコピーを作成するにチェックを入れOKを押す 同じシートが出来ますので、不要項目を消します、 で結果が欲しいところに(先ほどのG6の場合)↓を貼り付けます、 =IF(Sheet1!D6="●",2,IF(Sheet1!E6="●",1,IF(Sheet1!F6="●",0,""))) ポイントは、 コピーを作ったら、関数は一回消しましょう 結果はSheet1!のG6から直接写さない事かな? 直接 =Sheet1!G6 とすると空白の場合「0」が出てしまいます、 その他名前とか日付は直接でも良いです、

3743sada
質問者

お礼

さすが!すごいです。全く思いつかなかったです。 よ~し、作ってみます。 顔も見えないネットで、こんなにも他人のために親切にアドバイスしてくださる人がいるなんて、本当に嬉しいです。 何度もありがとうございました。

その他の回答 (12)

noname#9284
noname#9284
回答No.13

もう一つご質問があったことを忘れていました。 > プリントアウトするときは●印のあった列は印刷したくないのです。 この表の場合、D:F列とH:J列を隠したいという事で宜しかったでしょうか? 1.印刷前にCtrlキーを押しながらD:F列とH:J列を選択します。   やり方は列のセレクタ(上のA、B、Cと書いてある灰色の部分です)をCtrlを押しながらドラッグするだけです。 2.列のセレクタの上で右クリックし、コンテキストメニューから「表示しない」を選びます。 3.D:F列とH:J列が非表示になって表の幅が狭まります。 4.元に戻すには、Ctrlを押さなくてもいいのでC:M列を選択し、列のセレクタの上で右クリックし「再表示」を選んでください。 5.再表示のやり方は他にもありますが、これが一番安全でしょう。 ご希望が沢山ですのでそれぞれ書かせていただきました。数式に関しては他にも色々な数式でご希望を満たすことができます。 おわかりになりにくい点がありましたら補足をお願いいたします。

3743sada
質問者

お礼

hirorin2004さん、何度もご丁寧に、しかもとっても詳しく確実に教えてくださり、感謝の気持ちで一杯です。こんなにお礼が遅くなってしまい、申し訳ございません。数式とにらめっこして徹夜で何日もやっていたものですので、体調を崩し、お礼遅くなってしまいました。 おかげさまで、現時点で望むことはできました! ただ、数式の意味、理論がわかっていないので、またお聞きすることがあると思います。 そのときは、是非またよろしくお願い致します。 本当にありがとうございました。

noname#9284
noname#9284
回答No.12

ちょっとミスタイプです。 > 1.列に男・女とある表で、男の行だけ青で塗りつぶ  したい。 6.数式がに「=$C2="女"」と入力します。ここでもアクティブ行とC1の行番号が同じ事が重要です。 6.数式がに「=$C2="女"」と入力します。ここでもアクティブ行とC「2」の行番号が同じ事が重要です。 また、コンテキストメニューはショートカットメニューとも言います。 常に「その時点で何ができるか」がメニューに載っていますので、このメニューは状況に応じて変わってきます。 もしお時間があればスペースアルクで「context」で検索してみてください。 http://www.alc.co.jp/index.html

参考URL:
http://www.alc.co.jp/index.html
noname#9284
noname#9284
回答No.11

私のやり方で書かせてくださいね。 > 1.列に男・女とある表で、男の行だけ青で塗りつぶ  したい。 表はA1:S31まであり、1行目が見出しだとして、 1.A2:S31を選択する。 2.最上の行が2行目で、2行目のどこかがアクティブになっている(つまりそこだけ白くなっている)ことを確認する。これは重要です。 3.仮に2行目のどこかがアクティブになっていると仮定して、書式メニュー→条件付き書式で、数式がに「=$C2="男"」と入力します。先ほど2行目がアクティブだったのでC2です。3行目がアクティブならC3にしておいてください。 3.書式ボタンを押します。 4.パターンタブの「セルの網掛け」でパターンの色を指定してOKボタンを押すと、条件付き書式の最初の画面に戻ります。 5.下の「追加>>」ボタンを押します。 6.数式がに「=$C2="女"」と入力します。ここでもアクティブ行とC1の行番号が同じ事が重要です。 7.パターンタブの「セルの網掛け」でパターンの色を指定してOKボタンを押すと、条件付き書式の最初の画面に戻ります。 8.OKボタンを押しますと、男女によって行が塗り分けられます。 9.もし2行目だけ選択してこの条件付き書式を設定したのであれば、A2:S2まで選択しておいて、ツールバーの黄色いブラシのアイコン(書式のコピー/貼り付けボタン)をクリックし、A3:S31をドラッグして選択してください。2行目の書式が下の行にもコピーされます。 また、表は他にもあると思いますので、この2行目の書式を他の表に同じように書式コピーしてください。実はコピー元の行は3行目でも4行目でもかまわないんですが。 > 2.ある列に●が入力されている行には別の列に   「スイカ」という言葉を入れる。 1.G2:G31を選択して、画面上の数式バーに「=IF(COUNTIF(D2:F2,"●"),MATCH("●",D2:F2,0)-1,"")」と入力し、Ctrlキーを押しながらEnterキーを押します。下まで一気に数式が入ります。 2.もし、G2だけ選択して数式を入れ、Enterキーを押しただけでしたら、G2の数式を下までコピーしてやる必要があります。 3.この場合、G2のセルの右下をポイントすると(カーソルを滑らせてセルの右下あたりに持ってくるという意味で、クリックするわけではありません)、カーソルの形が + になります。この状態で下までドラッグしてボタンを離すと、セルが下までコピーされます。 4.K列にも貼り付けるのなら、G2:G31を選択して右クリックし、コンテキストメニューから「コピー」を選びます。 5.K2を右クリックしてコンテキストメニューから「貼り付け」を選びます。 6.他の表にコピーする場合は、G2だけをコピーし、 他の表のG2にあたるセルとK2に当たるセルに貼り付け、先ほどの容量で表の下までドラッグコピーしてください。 > 3.数字が入力されているある列の数値が160以上  は赤色表示にしたい。 1.この表の中の「ある列」の「文字色」を160以上なら「ある列」の文字色を赤色にしたい、とのご希望と仮定します。 2.「ある列」をS列だと仮定します。 3.S2:S31を範囲指定して、書式メニュー→条件付き書式で、先ほどの条件が設定されているはずですので、「追加>>」ボタンを押し、「セルの値が」「次の値以上」「160」にし、「書式」ボタンを押してフォントタブで色を赤にしてOK、OK。 4.他の表にS2の書式をコピーします。 5.万が一この方法で文字色が変化しませんでしたら補足をお願いいたします。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.10

#6の補足です。 IF関数の基本は =IF(A=2,B,C) 「Aが2であればB、でなければC」です。 IF関数でネストすると左の条件から順に処理します。 =IF(A=2,B,IF(A=1,C,IF(A=0,D,E))) 「Aが2であればB、でなくてA=1であればC、でなくてA=0であればD、 前述のどれにも該当しなければE」となります。 #6の式であれば、 =IF(D2="●",2,IF(E2="●",1,IF(F2="●",0,""))) ですので、 D2に●が記述されていれば、例えE2、F2にも●があっても 返ってくる値はD2="●"の条件を満たしている「2」となります。 印刷に関しては#9の方の仰る通り、印刷用のシートが簡単で良いでしょう。 ただ、今後データが増えていく事が判っているなら、追加の度に いちいち関数式をコピーせずに済むよう工夫したほうが良いですね。 下記は一例です sheet1の入力表は =IF(D2="●","2",IF(E2="●","1",IF(F2="●","0",""))) とし、判定結果を数字ではなく文字列で返すようにする。 印刷用のsheet2へ移動し、A1セルに =Sheet1!A1 と入力して、今後増える予定のセルまで(例えばS1000セルまで) 数式をコピー。 このままではsheet1で空欄になっているセルが「0」と表示されるので 「ツール」→「オプション」→「表示」タブで「ゼロ値(Z)」のチェックを外してOK。 あとは判定用に●を入力している列を削除。

3743sada
質問者

お礼

遅くなりましたが、ご丁寧に嬉しかったです。 世の中には頭のいい人がいるもんだな、と感心してしまいます。 seroさん、どうもありがとうございました。

  • daiku164
  • ベストアンサー率34% (151/437)
回答No.8

質問事項とまったくかけ離れてしまい申し訳ありませんが、 コツ・・・・他の方が作った関数や、教えて!gooの質問や回答など見ていると、 知らない関数や技など分かって楽しいから、とか、 前にも見積もり請求書を作った時の、苦労から覚えた事もあります、 まったく知らなかった時は、セルの関数を1セルごとに書き換えていました、 1セル内5箇所書き換えで、横に5セル縦に20項目で30シート分 5X5X20X30・・・15000 セル番地を書き換えた事があります、(笑) それも、間違えに気がつくたびで・・・ 途中から気が付いたら、今までの苦労はなんなんだと思いました。 気になる、質問や回答は必ずチェックしましょう

3743sada
質問者

お礼

う~ん。なるほど。千里の道も一歩からですね。 自分は関数や計算式に関しては全くのド素人です。 これからも勉強していきたいと思います。 あろがとうございました。

  • daiku164
  • ベストアンサー率34% (151/437)
回答No.7

>D列に『異常あり』E列に『観察』F列に『異常なし』と・・・・ 始まりが 6行目からとして G6に入る式は、 =IF(D6="●",2,IF(E6="●",1,IF(F6="●",0,""))) G6以降へのコピーは、 G6をクリックした状態でマウスを、枠内の右下に持って行くと +のマークが出ます、マークが出た状態で下にドラックすると 7・8・9・・「必要段まで」とコピーされます、 式も変わっていきますから楽ですよ、 =IF(D7="●",2,IF(E7="●",1,IF(F7="●",0,"")))

3743sada
質問者

お礼

すごい!本当におっしゃるとおりできましたよぉ。 コピーもあっという間。簡単です! すばらしいです。 こんな式作ったことないので、どうして思いつくのか感心してしまいます。 あのぅ・・・何か、法則というか、約束事さえ覚えれば、こういった式が作れる訳なんですか?最後は必ず"")にするとか? コツを教えていただけませんか。

3743sada
質問者

補足

G列に数式を入れた後で気付いたのですが、似たような項目がH列以降にもあります。歯垢の状態でH列に『付着なし』I列に『若干付着』J列に『相当付着』がさっきと同様に各行に●で印があります。歯垢の状態をK列に教えていただいた数式を当てはめ『0、1、2』を入れました。L列に歯肉の状態『異常なし』M列に『要観察』N列に『要診断』が●で印O列に教えていただいた数式を当てはめ、『0、1、2』が入りました。そこで、質問なんですが、プリントアウトするときは●印のあった列は印刷したくないのです。 列を削除したら数式入れた列のセルが#REF!になってしまいました。せっかく式を入れたのに・・・何か良い方法はありますが?わかりにくくて大変すみません。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.6

分岐条件が少ないのでIF関数のネストで可能です。 =IF(D2="異常あり",2,IF(E2="観察",1,IF(F2="異常なし",0,""))) 但し、同じ行で複数入力があった場合はD>E>Fの順に優先されます。

3743sada
質問者

お礼

何度もありがとうございました。教えていただいた数式ではできず、"異常あり""観察""異常なし"を●に置き換えたらできました。ご丁寧に何度もありがとうございました。 >同じ行で複数入力があった場合はD>E>Fの順に優先されます。 とは、数式で左になるものから優先されると言うことでしょうか? 最後に教えてください。お願いします。

  • sero
  • ベストアンサー率47% (916/1944)
回答No.5

#2です。 C列に性別の入力があるなら、例えばD2セルに条件付書式の「数式で」で =$C2="男" として書式を設定してOK。 D2セルを選択している状態でCtrl+C 塗りつぶしたい範囲(A1~S30セル?)を選択して「編集」→ 「形式を選択して貼り付け」→「書式(T)」でOK 上記手順で性別が男のセルの塗りつぶしは可能 ●がD列にあるとし「スイカ」と表示させるのは、表示させたい列に =IF(D2="●","スイカ","")です。 参照セルは適宜読み替えて下さい。

3743sada
質問者

補足

seroさんありがとうございます。 すごいです!!●スイカできました! では、こういうのは? D列に『異常あり』E列に『観察』F列に『異常なし』とそれぞれの行に該当者が『●』印が入力されいている表でG列に『異常あり』は『2』、『観察』は『1』『異常なし』は0を入れる数式を教えていただきたいのですが。 面倒なことをすみません。よろしくお願いします。

noname#7095
noname#7095
回答No.4

#3です。 1行目には項目があるとして、2行目から設定するとします。 条件付書式を設定したい範囲をすべて選択します。 書式→条件付書式と開きます。 「条件1」で「数式が」「=$C2="男"」の場合で書式を設定します。 Excel2000と2002で確認しました。多分ほかのバージョンでも一緒です。

3743sada
質問者

お礼

できました!できましたよ~!! と~っても嬉しいです。 本当にありがとうございました。 感激です。

noname#7095
noname#7095
回答No.3

#1です。 条件付書式を行全体に設定なさる場合はその行全体を選択した状態で設定しなおすか、範囲を選択してから設定するか、書式をコピーして張り付けるかをしてみてください。 もうすでにひとつ設定なさってますから、コピーして張り付けるのがラクかな。 設定されたセルを選択し、右クリックからコピーを選択します。 書式を貼り付けたいセル範囲を選択し、右クリック→形式を選択して貼り付け→書式でOKかと。

3743sada
質問者

お礼

お返事待ってました!嬉しいです。ありがとうございます。 でも、おっしゃるとおりにしてみてもできません。 私の説明がたりなかったのかも。 A列に通し番号、B列に男女混合の氏名、C列に性別(男Or女)、S列までデータが入ってる表をC列の「男」を頼りに表内の行A列からS列迄を簡単に塗りつぶしたいのです。 表は30人くらいの表が24あります。 お願いします。

関連するQ&A

  • エクセル 同じ数値を赤字

    だれか教えてください!! 数字データが縦横びっしり入力されているエクセル表で、同じ行に同じ数値があった場合、その数値、全部を赤字にするにはどうしたらいいでしょう? または・・・ すでにマクロ登録されているボタンを押すと同じ数値を赤字にできるエクセル表があるのですが、一部を入力し直してもう一度ボタンを押すと赤字にならなくなります。 何回押しても同じ行に同じ数値があったら、同じ数値全部を赤字にするマクロを簡単に編集する方法はありますか? 教えてください。

  • エクセルでの簡単なデータ入力について

    エクセルで、A1、B1、C1に数字を入力し、そのあとD1、E1、D2、E2…と何行か数字を入力、再び先頭のA列に戻りまた作業を繰り返すという変則的な表を作っています。つまり最初は5列に入力するけれど2行目3行目…は4列5列のみ入力、またn行目は5列入力に戻るというものです。入力の仕方でより簡単な方法がないでしょうか。タブとエンターで繰り返し入力ができますが、計算式を保護したいので保護をかけるとカーソルの動きが思うようにいきません。簡単なマクロ操作でパソコンになれていない初心者でもできる簡単な入力方法はありませんか。4列目5列目の入力繰り返しの回数は、C列の数字がが10なら10行、5なら5行とつど変わります。うまく説明できたか不安ですがよろしくおねがいします。

  • エクセル2013 範囲を取得して並べ替え

    A列2行目から9桁の同じ数字が入力されています。 同じ数字が入力されている行数は、いつも同じではありません。 A列の同じ数字の範囲を認識して G列で 「数値に見えるものはすべて数値として並べ替えを行う」で並べ替えを エクセルのマクロで教えてください。 例 A2からA4まで 123456789 の同じ数字 G2からG4まで 1-2-3や2-1-2や2-奥-1など・・・ A5からA6まで 147258369 の同じ数字 G6からG6まで 1-2-3や3-3-3など・・・ 入力されている行数は常に可変です。 途中、空白は存在しません。 宜しくお願いします。

  • Excelのフィルターなんですが

    A列 B列 1 りんご 2 みかん 3 すいか 1 りんご 2 みかん 3 すいか 1 りんご 2 みかん 3 すいか 上記の表があり、フィルターで1を選ぶ場合に自動マクロで記録すると Selection.AutoFilter Field:=1, Criteria1:="1" となります。これをC3に入力した数字を参照したいので Selection.AutoFilter Field:=1, Criteria1:=cells(1,3) としてみたのですが、うまくいきませんでした 下記のように選択されるようにしたいのですが、どうすればよいのでしょうか? A列 B列 1 りんご 1 りんご 1 りんご

  • エクセル関数の自動表示について

    自動表示についてご質問いたします。 シート1 (3月入力時)       A列  B列  C列  D列  E列  F列  G列  H列 1行目  1月   2  10  11  12  30  31  33 2行目  2月   1   2   5   8   9  10  48 3行目  3月   3   5  10  11  30  31  32 4行目  4月   こういうシート1の表があったとします。 シート1で3月入力した時点で、シート2では以下の表があったとします。        A列  B列  C列  D列  E列  F列  G列   1行目    3   5  10  11  30  31  32 と、自動で表示され。 4月(シート1)に数値を入力すれば、シート2の数値が最新数値に自動で入れ替わる・・・と、いう関数を作りたいのですが、いい関数ありますでしょうか? この場合、シート1ではB列~H列の数字の個数は固定(今回は7個)であり、毎回ランダムで数字が入力されていきます。 これをシート2の1行目、A列~G列に最新数値を毎回反映させて、表示したいのです。 どなたか、ご存知の方よろしくお願いします^^;

  • 2つの数字の変化を読み取るエクセル関数はありますか

    エクセルの関数についてです。2つの数字の変化を A列  B列 100    1 103    1 109    1 120    1 105    -1 102    -1 120    1 123    -1 ・    ・ ・    ・ ・    ・ となっている時に,以下の2つの条件を満たす式を作ることはできますでしょうか。 (1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す (2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次は,B7なので120,次はB8なので123…と 数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出すようにしたいのです。 やはりマクロを組まないといけないのでしょうか? 分かりにくかったら申し訳ございません…

  • エクセルの列と行を等間隔にしたい+1質問

    タイトルの通り、エクセルの行を等間隔に、列もそれぞれ等間隔にしたいのですが、一つづつ調整するよりも効率的な方法があれば教えてください。 それと、入力した数字が「数値が文字列として保存されています」となるのですが、無視してもいいのでしょうか? よろしくお願いします。

  • エクセルでこんな事出来ます?

    エクセル2000で教えて下さい。 ABCDの列に任意の数字が入ります。 例えば     A   B   C   D 1  -10 -20 -30  60 2   50 -30  0  -20 3   10  30 -25 -15 のように同じ行で4つのセルをプラスマイナスすると等しくなります。 数値の入力は小さい数字(マイナスの大きい数字)から順番に入力されていきます。 最後に一番大きい数字が入るように式を入れたいのです。 例で言うと1行目ではD1、2行目ではA2、3行目ではB3の答えが自動で入るようにしたいのです。 列は4列のみです。マイナスの数値は最低でも1つ入ります。   

  • エクセル教えてください

    報告書を作成しているのですが、1ページ目に入力した項目を2ページ目に別の表として作成するのですが、時間がかかってしまいます。 時間短縮のため、1ページ目に入力すると横の2ページ目の表に自動的に入力されるようにしたいのですが、方法がありましたら教えてください。 <数字の場合> 0、0.1、1.3、25.7など0から25.9までの小数点1桁の数字を入力。 2ページ目の表には0から25までの列があり、0.4なら0に、10.5なら10のように、小数点を切り捨てた数字の列に1ページ目と同じ行に1と入るようにしたい。 <文字の場合> 1ページ目の決まった列に任意の単語が入力されると、2ページ目の表の同じ単語の列に、1ページ目と同じ行に1と入るようにしたい。 わかりにくいかもしれませんが、よろしくお願いします。

  • エクセルマクロで表の途中の集計行と合計行追加

    こんなことできますか? エクセルの表が各シートに一つずつあります。 B列からR列まで使用しています。 始まりは3行目で見出し行です。 データは4行目以降ですが、これは各シートごとに最終行は異なります。だいたい120行から200行程度です。 途中に空白はありません。 この表はS列の数値(12種類)により分類され並べ替えてあります。 やりたいのは、S列の数値を見て、分類(同じ数字)ごとに集計する行を追加したいのです。 集計する列は、D~K列だけです。 そして、最終行に全部の合計も出したいのです。 ただ、量が多いのと、頻繁に行なう作業なのでマクロでささっと出来ないかと思います。 どなたかどうすればよいか教えてください。 なにとぞお願いします。