[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ある条件のときセルに罫線\を引く』(Tear)
条件付書式??
こんにちは。
現在、資材業務の一覧表を作成しております。
その中で、原価センタを入力する欄(H列・I列)と件名コードを入力する欄(J列・K列)があるのですが、
実際にはどちらか一方しか入力しません。
そこで、原価センタを入力した場合、件名コードには「"−"を入力」、
もしくは「セルに罫線"\"を引く」ということを行いたいのです。
件名コードを入力した際は、逆に原価センタのセルに同様のことを行いたいです。
原価センタ入力欄のH列に特定の数字を手入力すると、その名称がI列へ自動入力されるようにしてあります。
件名コード欄も同様の仕組みとなっております。
条件付書式で何とかしようと努力してみましたが、私の力では何とも出来ませんでした・・・。
恐れ入りますが、教えていただけると幸いです。
よろしくお願い致します。
条件付書式では、 >「セルに罫線"\"を引く」 は、制御できませんね。 >「"−"を入力」 は、IF で表示出来ませんか? (jun53)
(Tear)
この相談、悩みました! IF関数で互いのセルの値を監視すると循環参照になってしまうので、 ちょっと困ったデス。
とりあえず、こんな方法ではどうかと。 (1行目見出し、2行目からが対象と想定しています。) H2には「"−"」を最初から入力しておきます。 条件付書式で「数式が」「=J2=""」、このときの書式を フォントの色を背景色と同じに設定。 I2の数式を「=IF(H2="−","",[検索の数式])」 J2列に「=IF(H2="−","","−")」 K2の数式を(既になっているかもしれませんが) 「=IF(J2="","",[検索の数式])」
これらを必要範囲にフィルドラッグ。 入力はH列、I列へそれぞれ「上書き」してしまいます。 このような方法で一応ご要望の件は可能であることを 確認しましたが、入力列を間違えたりして訂正する時は 「"−"」も数式も上書された後なので、他のセルから コピペしてくるしかないでしょう。 なんだか苦しい回答。 (KAMIYA)
今回の Tearさんのご質問を私は次のように解釈したのですね。
>原価センタ入力欄のH列に特定の数字を手入力すると、その名称がI列へ自動入力... ということで、原価センタ入力が件名コード(J列・K列)には関係しませんよね。
>実際にはどちらか一方しか入力しません。 ということで、[原価センタ]を入力した段階で[件名コード]欄は用無しになる。 そこで例えば、=IF(原価センタ>0,"\","") or =IF(原価センタ>0,"−","") 等と、、 数式に上書き数値入力しても、いっこうにかまいませんから。私はよく使ってます。
不都合かもしれませんから(H列・I列)と(J列・K列)の数式をココに載せることは出来ませんか? できないかもしれませんから、その時にはゴメンナサイですが。 (jun53)
この隙間にタイトルを変更しました。 (kazu)
油断も[隙 間]も無いですね? ん (jun53)
>KAMIYAさん
>条件付書式で「数式が」「=J2=""」、このときの書式をフォントの色を背景色と同じに設定。
この条件付書式は、H列に設定すればよいのですか?
また、この「フォントの色を背景色と同じに設定」することの必要性が
良く分かりません・・・。
>jun53さん
>=IF(原価センタ>0,"\","") ・・・
この数式は、件名コード入力欄であるJ列に入力すればよいのですか?
しかし、例えば原価センタを入力したため、件名コード欄は不要になることが分かった場合、
その後、上記の数式をJ列へ入力するのなら、そのまま"−"を手入力しても
同じではないかと思うのですが・・・。
どの段階で上記の数式を入力するのがベストなのか(元から入力しておく?)教えて下さい。
それと、
>・・・(H列・I列)と(J列・K列)の数式をココに載せることは出来ませんか?
この、「ココ」というのは、どこのことでしょうか??
(Tear)
「ココ」というのはこの掲示板に数式を書いてほしいということです。 お話を聞くよりもTearさんの相談しているシートのK列からH列に入っている数式を 貼り付けて、実際どんな数式が入っているのかを見たほうが回答者の判断が 早い、ということです。 それから、私の回答は思い違いの可能性が高いので、とりあえず、 先の私の回答は忘れてしまってください。 まず、K列からH列に入っている実際の数式を見たいので、お願いします。 (KAMIYA)
・H列:原価センタ手入力用のため、ブランクセル。
・I列:原価センタの名称自動入力用。次の数式が入力されている。
=IF(ISERROR(VLOOKUP(H2,DATA!$C:$D,2,FALSE)),"",VLOOKUP(H2,DATA!$C:$D,2,FALSE))
・J列:件名コード手入力用のため、ブランクセル。
・K列:件名コードの名称自動入力用。次の数式が入力されている。
=IF(ISNA(VLOOKUP(J2,件名一覧!$A:$B,2,FALSE)),IF(ISNA(VLOOKUP(J2,件名一覧!$C:$D,2,FALSE)),IF(ISNA(VLOOKUP(J2,件名一覧!$E:$F,2,FALSE)),"",VLOOKUP(J2,件名一覧!$E:$F,2,FALSE)),VLOOKUP(J2,件名一覧!$C:$D,2,FALSE)),VLOOKUP(J2,件名一覧!$A:$B,2,FALSE))
★別シート「DATA」のA列:勘定科目のコード
B列:勘定科目の名称
C列:原価センタのコード
D列:原価センタの名称
(A列・B列の勘定科目については、今回の質問には関係ありませんが・・・)
★別シート「件名一覧」のA列:部署@の件名コード
B列:部署@の件名名称
C列:部署Aの件名コード
D列:部署Aの件名名称
E列:部署Bの件名コード
F列:部署Bの件名名称
と、いうような形になっております。
ちなみに、一覧用のシート("−"を表示させたいものがあるシート)は、部署別に用意してあります。
上記の説明でお分かりいただけるでしょうか・・・ (Tear)
衝突しました。直近の書き込みを見てませんが、少し考えましたので見てやって下さい。
KAMIYAさんにも、ゴメンナサイ。 KAMIYAさんのおっしゃる、[循環参照] を避けようと思ったのですが、 単純な IF で、 (H列・I列)と(J列・K列)の情報だけでは[循環参照] 避けられません、無理みたいですね。
チョット無理やりですが、こんな方法を考えました。
A B C D E F G H I J K 1 2 3
H2 以下に '\ を入力して 文字を白色 I2 に =IF(H2=T(H2),H2,"原価名称数式") 文字を白色 として下にコピー H:I 範囲を選択して 条件付き書式 条件1 数式が =$J2=N($J2) 文字を 黒色 条件2 数式が =$H2=N($H2) 文字を 黒色
J2 以下に '\ を入力して 文字を白色 K2 に =IF(J2=T(J2),J2,"件名コード数式") 文字を白色 として下にコピー J:K 範囲を選択して 条件付き書式 条件1 数式が =$J2=N($J2) 文字を 黒色 条件2 数式が =$H2=N($H2) 文字を 黒色
これでこちらは何とか出来ましたが、実際にはどうでしょうか? グッドアイディア募集中です。 (jun53)
私の意図の通り、表示させることができました!ありがとうございます!(>_<)
しかし、どういう経緯で表示できてるのか、
仕組みがいまいち理解ができてませんので、ご説明願います・・・。
それと、原価センタのほうはOKなのですが、
件名コードは「××−××××−××−××」と、間にハイフンを入れるため、
正しい件名コードが入力されていても、それに該当する名称が拾えません。。。
(件名コードが数値ではないため拾えないんだと理解してます。)
恐れ入りますが、対処法を教えていただきたいです。
度々申し訳ありませんが、よろしくお願い致します m(_ _)m (Tear)
ハイフンが入っているのはJ列へ入力する値ですか、 それとも件名コードのリストのほうですか? それによって違ってきますが。 (KAMIYA)
教えていただいた通り試してみた結果、
原価センタは、該当するコードが別シートの一覧にあった場合、
その名称をひろってきましたが、
件名コードについては、該当するコードが別シートにあるのに、
名称ではなく、そのコードがそのまま名称の欄に入力されてしまいました。 (Tear)
関数 T() N() のことだと思いますが、詳しいことはヘルプで確認して下さい。
T() は、文字を認識、指定しします =IF(H2=T(H2),H2,"原価名称数式") で H2 が文字('\)なら '\ を、違ったら数式を。
N() は、数値を認識、指定します =$J2=N($J2) で J2 が数値なら 文字を 黒色に、違ったら初期設定の 白色を。 と、いう意味です。 以上の説明、自信無いです。
件名コードの式がうまくいかないのは、やはり数値ではないからだと思います。 件名コードの数式は K2 に =IF(LEN(J2)>5,J2,"件名コード数式")
条件付き書式は、両方とも 条件1 数式が =LEN($J2)>5) 文字を 黒色 条件2 数式が =$H2=N($H2) 文字を 黒色 に、修正して下さい。
LEN(J2)>5 は、文字の長さを調べてますので (この場合は、J2 文字の長さが 5 以上なら、、、、)ということですので、 '\ 等の長さと、件名コードの長さの兼ね合いで調整して下さい。 (jun53)
Tearさん、困惑してますか? 数式が間違ってました。
件名コードの数式は K2 に =IF(LEN(J2)=1,J2,"件名コード数式")
LEN(J2)=1 の 1 は J2 '\ 等の文字数と同じに下さい。 前にも書きましたが、件名コードの長さとの兼ね合いで調整して下さい。 なんどもすみませんです。 (jun53)
お察しの通り、困惑しておりました・・・(^^;
ただ、お察しの内容とは少し違ってましたが。。。
(=IF(LEN(J2)>5,J2,"件名コード数式") ←この式だと、
件名コードが正しく入力されても、J2が表示されてしまうので、
=IF(LEN(J2)<5,J2,"件名コード数式") にすればいいのかな?とか
いろいろやってました・・・・。)
それと、教えていただいたことに対し、新たに疑問が浮上したのですが、
すぐに質問してばかりではいけないと思い、いろいろ試行錯誤してました。
しかし、解明できなかったため、申し訳ありませんが、教えてください。
教えていただいた通り設定したところ、
原価センタが入力された際は問題なく表示されるのですが、
件名コードが入力された場合、原価センタ欄に"−"が表示されません。
条件付書式で指定する数式をいじれば表示されるのでは、と思うのですが、
どのようにしてよいのか分かりませんでした。。。
度々恐れ入ります。jun53さん、お願い致します。 (Tear)
気になって覗いてみましたが、「部分解決」出来たようで良かったです。
>件名コードが入力された場合、原価センタ欄に"−"が表示されません。 これは、− と \ を条件によって変えるということですか? 初期設定で \ の変わりに − を設定して 白文字ではいけませんか? ↑この部分だけお返事をいただければ、有り難いのですが...
質問を良く読んでませんので、もう少し時間を下さい。 (9時過ぎになると思いますが、よろしいでしょうか) (jun53)
"\" というのは、セルに罫線を引くという意味合いだったのです。
しかし、条件付書式では罫線は制御できないということでしたので、
私としては、「セルに"−"を入力する」ことをずっと念頭においておりました。
ですので、私側で表示できるかどうか確認していたものは、
すべて、「セルに"−"を入力する」でした。
>これは、− と \ を条件によって変えるということですか?
↑こういったことは一切行っておりません。
ですが、うまく表示されなかったのです。。。。。
もしかしたら、細かな設定が間違っているせいで表示できなかっただけかもしれませんが。。
私、あまり残業をしてはいけない身なので、退社することといたしますが、
明日また拝見させていただきます。
明日の朝までにご返答いただければ幸いです。よろしくお願い致します。(Tear)
まぁまぁ〜 ボタンの掛け違いで、二人とも良く此処までたどり着きましたね〜 びっくりです。 私は図形の \ を「セルに入力する」と、念頭において説明してましたので、 Tearさんの処理に感謝します。
H2,J2 以下に − を入力して 文字を白色 ですが、うまく表示されませんか。 条件付き書式の 条件1 数式が =LEN($J2)>5 の 5 がポイントだと思います、 ですが、その前にチョット
余計なお世話かもしれませんが(もう、以下のように工夫してると思いますが) "−"の部分は "−−−" や "−−−−−" 等と、列幅に合わせて − の数を 増減させるのもいいと思います。(見栄え等の為) 又 " −−−−−" と、半角スペースを入れて調整する、もいいですね。 なお、半角スペースも、文字数に計算されます。
その場合、 件名コード K2 の数式は =IF(LEN(J2)=5,J2,"件名コード数式") ↑この数字を [文字数] と同数にする。 そして、条件付き書式のポイントですが、 条件1 数式が =LEN($J2)>5 の 5 を − の数に合わせる。 例:"−−−" は =LEN($J2)>3 "−−−−−" は =LEN($J2)>5 " −−−−−" は =LEN($J2)>8 です。 ←半角スペースが3ヶ入ってます。
又、L列などが空いていれば例えば L1 に −−−−− 等と入力し L2 に =LEN(L1) とすれば、文字数が簡単にわかります。 (入力セル番地は工夫して下さい) J2 に =$L$1 として下にコピー その場合、 K2 の数式は =IF(LEN(J2)=$L$2,J2,"件名コード数式") こうすれば、 − の数を増減しても自動修正してくれます。 何度も言って申し訳ないですが、件名コードの長さとの兼ね合いです(幸いコードは長いようですが...) そして、条件付き書式のポイントですが、 条件1 数式が =LEN($J2)>$L$2 これで、 − の数を増減しても自動修正してくれます。 コード入力は、式に上書き入力しても、かまいません。
また、[原価センタ] と [件名コード] の − の数は、同数で無くても表示出来るようです。 が、私が少しの時間で試しただけですから、再確認して下さい。
以上でうまくいくと思います。 すごく長文になってしまいましたが、飽きずに読んで下さいね。
ところで、残業をしてはいけないのですか? わかるような、わからないような??(笑) (jun53)
@J2以下、L2以下に半角で"---"を入力。
AK2へは数式、=IF(LEN(J2)=3,J2,"件名コード数式")を入力。
BJ列・K列の条件付書式にて、条件1 数式が =LEN($J2)>3
と、設定したところ、上手くいきました!ありがとうございます!
別セルへ"-----"等と入力して、それを拾ってくる方法は、
今の私には混乱の元になりそうでしたので、
もう少し賢くなってから試してみようと思います(^^;
こんなに長らくご指導いただいた上に、またまた質問させていただくのは
何とも恐縮ですが、
原価センタor件名コードに"−−−"が表示されたときのみ、
配置を中央揃えにするということはできますか?
条件付書式では、配置は制御できない・・・ですよね・・・・・。
あの、これは余談という程度ですので、出来なければ出来ないで結構です。
もちろん出来ればうれしいですけどヽ(´ー`)ノ
お手数ですが、よろしくお願い致します。
(Tear)
すでに解決済みのようですが、単純な方法なのですが、 最初にH2のセルに =IF(K2<>"","--","") J2のセルに =IF(I2<>"","--","") と 指定し、書式設定を右寄せにして、H列・J列を作成しておくのは駄目でしょうか? 両方コード未入力の場合は、1行ブランク。 仮に、H2にコードを入力すると、I2に名称が表示されるので、J2には「--」が表示される。 もし、J3にコードを入力すると、K3に名称が表示されるので、H3には「--」が表示される。 (コード入力は、数式を上書きしても構わないと思うので・・・) 解釈が違っていたらごめんなさい。(スー)
又、衝突しました、せっかく書いたのでこのまま載せますー。 ********** そうなんですね。私も最初スーさんのように、 IF で簡単に処理出来るのでは? と考えたのですが、I列・K列の関係で循環参照になるのであきらめたんですよ。 上記の式、試してませんが循環参照になりませんかね。
>原価センタor件名コードに"−−−"が表示されたときのみ、 >配置を中央揃えにするということはできますか? これは、エクセルの標準機能では出来ないようです。
「表示されたときのみ...」とのことですが、 表示させる条件が、1つだけ(対称セルに入力有りの時)ですから、 前回提案した半角スペース等で調整しておいても、不都合は無いと思います。 但し半角スペースも文字数に勘定されます。
>就業先でExcelの学習 これをもしも、問題視するような企業は... 等というかたい話はとりあえず抜きにして、 Tearさんも、時々(毎日?)ここの掲示板を覗いてみて下さいね。 できれば回答もしてくれると嬉しいですね。 (jun53)
ごめんなさい。やはり循環参照になっておりましたので、コードの件は却下します。 確認不足でご迷惑をおかけしました。
ところで、件名名称の表示については解決されましたか? コードがハイフン付きで入力されて、表示は「部署@部署A部署B」と並べて表示するの ではないかと勝手に想像して考えて見ましたので、試してみて下さい。 部署@=2桁、部署A=4桁、部署B=2桁と仮定して、K2のセルに =IF(J2="--","",VLOOKUP(LEFT(J2,2),件名一覧!$A:$B,2,0)&VLOOKUP(MID(J2,4,4),件名一覧!$C:$D,2,0)&VLOOKUP(RIGHT(J2,2),件名一覧!$E:$F,2,0)) と指定すれば表示できると思います。
N列・P列・R列の書式は「文字列」としており、必ずコードがあるものを入力しましたので、 なかったときの表示によっては、数式を修正すれば対応できるのでは・・・(スー)
>スーさん
スーさんが想像されているものとは異なります・・・。
私が疑問に思っていた点は、
「条件付書式を設定したら、それまで拾えていた件名コードが拾えなくなってしまった」
ということでしたので・・・。
おかげさまで、現在は既に解決済みです。
しかし、私の発言について事細かに目を通してくださったことに
大変感激しました。ありがとうございました(^^)
>jun53さん
>これは、エクセルの標準機能では出来ないようです。
そうですか・・・・。
jun53さんの仰る、"−−−"の前へスペースを入れて対応するのを試してみましたが、
H〜K列それぞれ横幅が異なるため、ある列では中央揃えのように見えても、
ある列では中途半端な位置に"−−−"が表示されてしまいます・・・。
あ、今気づいたのですが、もしかして、それぞれの列に対応する"−−−"を
用意するということでしょうか?
ごめんなさい、見栄えごときにこんなにこだわってしまってますが、
ご回答、よろしくお願い致します。
#こちらのサイトは、ほぼ毎日拝見させていただいております。
#毎日ギモンだらけなので・・・・・・(;_;)(Tear)
=REPT で −やスペースを、とも考えましたが、やはり 各列に対応する"−−−"を用意した方が簡単ですね。 前回 >別セルへ"-----"等と入力して、それを拾ってくる方法は、 今の私には混乱の元に... と書いてましたが、ここまで出来たのですから以下の方法もゆっくりと 手順通りにやればきっと出来ると思いますよ。試してみませんか?
使用している列がどこまでかわからないので、W列以降に"−−−"を入力、と仮定しました。
A 〜 G H I J K L 〜V W X Y Z 1 原価1 原価2 件名1 件名2 ←項目名を付けた方が後でわかりやすいです。 2 − −−− −− −−−−− ←各−を入力します(希望数&スペース) 3
数式入力作業時は、 L:V 列を非表示にすれば作業しやすいです。
H2 に =W$2 として下にコピー I2 に =IF(LEN(H2)=LEN(W$2),X$2,"原価名称数式") H 列の条件付き書式 条件1 数式が =LEN(J2)>LEN(Y$2) 文字を黒 I 列の条件付き書式 条件1 数式が =LEN(K2)>LEN(Z$2) 文字を黒
J2 に =Y$2 として下にコピー K2 に =IF(LEN(J2)=LEN(Y$2),Z$2,"件名コード数式") J 列の条件付き書式 条件1 数式が =LEN(J2)>LEN(Y$2) 文字を黒 K 列の条件付き書式 条件1 数式が =LEN(K2)>LEN(Z$2) 文字を黒
条件2 はH I J K 列共に 数式が =H2=N(H2) 文字を黒色
以上で、W2:Z2 の − の数やスペースを変更しても自動修正されます。 W2:Z2 の−入力セルを変更して L:V列の方に移したい時は、 【まず、この通りのセルに入力し、表示が正確に出るのを確認して】←これ、重要です。 それから不要な列を[削除]すれば、数式も自動修正されます。 ガンバってチャレンジしてみませんか?できると思いますよ。
万が一ダメでしたら、4種の−入力セル番地を書き込みして頂ければ、 又考えてみます。
>見栄えごときにこんなにこだわってしまってますが... 見栄えは重要ですね。見栄え1番、中身2番、財産3番 ??? こんな事書いてると、はじかれますからこのへんでやめときます。 (jun53)
jun53さん、ご丁寧にありがとうございます!
私はどうやら、人に背中を押してもらわないと動けない人間のようなので、
jun53さんのお言葉を受けて、「がんばってみよう」と思いました。←単純
今から、教えていただいた内容、試してみます!
しかし、元々使用していたブックと、
これまで教えていただいていたことを試していたブックが別々に存在する上、
データは随時追記しなければならないという状態で、
現在、管理の問題でアタフタしてます・・・(*_*)
なので、ちょっと時間がかかってしまいそうですが、
またご連絡いたしますー(^^)
* これ、後で消しますね・・・ (Tear)
Tearさんの、↑の書き込みは「私個人にとっては」嬉しい書き込みなので どうぞ消さないで下さい、お願いします(消す内容でも無いと思いますし)
↑↑でわたしが提案した方法は文字で見ると複雑そうですが(説明が 下手 という事もあります) 実際にやってることは単純です。
他にもっといい方法が有るかもしれませんが、 とりあえず、時間を見つけてトライして下さいね。 (jun53)
#会計期間の締切等の関係で、慌しかったのです・・・(;_;)
原価センタ(H列・I列)は問題なく表示されたのですが、
件名コード(J列・K列)が、
"(スペース)---"の文字列の方が、実際に入力したい文字列より長くなってしまったため、
条件付書式の条件1にて設定した数式(H〜K列それぞれ)を、
数式が =LEN(J2)>LEN(Y$2) 文字を黒
から
数式が =LEN(J2)<LEN(Y$2) 文字を黒 等に変更したところ、
私が思っていたとおり表示させることができました!
jun53さん、ありがとうございました!(>_<)ノ
ただ、1点質問があります・・・。
前々回のjun53さんの書き込みの中の、
>【まず、この通りのセルに入力し、表示が正確に出るのを確認して】←これ、重要です。
重要なのに、この文章の意味があまりよく掴めておりません・・・。
ほんとに度重なる質問で大変恐縮ですが、よろしくお願い致します。 (Tear)
W2:Z2 に "-----"等を用意すると、HIJK 列からかなり離れるので、 L〜V列側に用意したいのでは?と思ったんです。 そうすると数式の修正作業があるので、 「まず、この通りのセルに入力し....」それから列削除をすれば自動修正され、 修正作業せずにL〜V列の何処か好きな列に移動出来るので、 そのように書いたのですが...少しお節介でしたかね〜。
うまく表示出来たようで、良かったです。 (jun53)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.