セルにある数字に数に合わせた色を付けたい

可能でしょうか?
どうやればいいか?私にはわからないです。
行1~5までの様式でやりたいことがあります。
行10~14までは、これだったらできるのだけど、これじゃダメなんですってパターンです。
行1~5を一番と略した単語にします。
行10~14を二番と略した単語にします。
スタイルで0~9を各数字に黒~肌色に割り当てて、条件付き書式でセルの数字が0だったら黒~9だったら肌色というふうにしました。
それをI10~K14のようにしました。
このパターンを三番と略した単語にします。

以下のファイルが、やりたいことをテスト的に作ったものです。
tesuto.ods (13.5 KB)

セルI1~K5までを、I10~K14までのように、0~9の数値に色を付けたいです。
二番の方法ならできるのですが、データ入稿の際に3桁の数字を1セルずつに分けて
入力するのは面倒です。
また、3桁の数字で検索したいときに例えば一番のパターンができたとしてですが
C列にある901番を検索したいとき、

3桁の数字を1桁ずつに分解して、各桁ごとにセルに分ける関数を検索サイトなどで
見つけて、試行錯誤してできました。
セルE1だと=MID($C1,COLUMN()-(COLUMN($E1)- 1),1)で、セルE1にC1の上1桁の数字になりました。
式の- 1),1)の意味が分からないまま、数字を変えたりしたら2桁目、3桁目も出来た程度の低能力な私です。

それで、一番を作ってみました。
一番の説明:
A列:番号を付けてるだけで意味はないです。
C列:3桁の数字の入稿用です。ですが012などのように上桁が0、または上1桁と連続して上2桁が0のとき、または全桁が0などのときに桁数が3桁にならないので、列のセルの書式をテキストにしています。
E列~G列:C列の3桁数字を分解して、あってるかわからない関数で上桁から順に1桁ずつにわけました。
できれば、E列~G列の数字が色分けになるといいなぁ~と期待して、E列~G列(テストなので実際にはセルE1~G5まで)の範囲で三番を設定しましたが、色がつかなった。
I列~K列は、関数で1桁に分解したかな?とおもって、E列~G列に並行して、コピーがでるようにしました。
そしてI列~K列の数字が色分けになるといいなぁ~と期待して、I列~K列(テストなので実際にはセルI1~K5まで)の範囲で三番を設定しましたが、色がつかなった。

もしかしてC列がテキスト書式だからかな?とおもって、0問題は、考えないとして
書式を数字にしてみましたが出来ませんでした。
どっちにしろ出来なかった。

直接入れた数字、または、そのコピー先だと三番を設定すれば色がつくようです。

どうにかして、色を付けたいです(できればE列~G列、無理ならI列~K列)。
今は3桁だけど、4、5、6桁と増えたときにも応用したいです。
お知恵をください。
難しいことはわからないので、出来れば、わかりやすく説明していただけると幸いです。
よろしくお願いいたします。

MID関数の結果がテキストなので、以下のどちらかにする必要があります。

  • VALUE関数を使用してテキストを数値にする
  • 条件付き書式の条件を"0"のようにダブルクォーテーションで囲む

MID関数は文字列の何番目から何文字を抽出するという関数です。
COLUMN関数は指定があればその列番号を、なければ数式のある列番号を返す関数です。

E1セルの数式を
=VALUE(MID($C1,COLUMN()-4,1))
に変更するとコピーもしやすく、すっきりすると個人的に思いました。

Version: 24.2.5.2 (X86_64) / LibreOffice Community
Build ID: bffef4ea93e59bebbeaf7f431bb02b1a39ee8a59
CPU threads: 12; OS: Windows 10.0 Build 22631; UI render: Skia/Raster; VCL: win
Locale: ja-JP (ja_JP); UI: ja-JP
Calc: CL threaded
3 Likes

sabr0さん
以前の質問のときも、ご回答をありがとうございました。
自分の知識(ほとんどないですけど)やひらめき(ただの試行錯誤だけど)を絞り切って、どうしてもわかりませんでした。
""でくくるのは日本語のときに、やっていました。
””でできるなんて、感動しました←アレコレやりつくしたと思ってたので。
関数の説明までしていただいてありがとうございます。
関数を入れたセルのセル位置を各セルで変えなくてよいんですね。
コピーがとてもやりやすかったです。
私は、テキストエディタに一度、=MID($C1,COLUMN()-(COLUMN($E1)- 1),1)E1を貼って
同じものをあと3行まで貼って、2行目と3行めを部分的に編集して、各セルに貼り付けていました。
そんなことしなくてすみました。
そして、VALUE関数をいれた式を教えていただいて、やってみたら
ダブルクォーテーションで囲まなくてもできました。
テキストだからいけないんだ?とまでは、そうなのかな?って思ってましたが、方法が分からなかったです。
最もやりたかったE~Fまででまとまりました。

今回も的確なご回答をありがとうございました。
とても助かりました。

3 Likes