プロが教える店舗&オフィスのセキュリティ対策術

あるセル(仮にA2とします。)に5桁の数字があって、あらかじめ0~9で個別指定されているセル
(ここでは、B2,C2,、、k2)に該当数字があれば1つであれば「○」で表示、2つ以上は「★」で表示といった命令をつくるのにどう書けばいいのでしょうか?

質問者からの補足コメント

  • 皆さん回答ありがとうございます。
    不足部分等に気づきましたので追加コメントします。

    NO4回答者 tatsu99さんの内容にドンピシャです。
    ※該当数字という欄に数字がない場合は空欄で表示といった内容です。
    例)
    1列目 l該当数字 l 0 l 1 l 2 l  3 l 4 l 5 l
    2列目 001225 ★ 〇  ★        〇

      補足日時:2016/10/19 20:04

A 回答 (10件)

これを利用すればいけそう


http://www.relief.jp/itnote/archives/excel-funct …
これで無理ならまた質問して。
    • good
    • 0
この回答へのお礼

わざわざ探してくださり大変感謝してます。
これを見て勉強してみます。

お礼日時:2016/10/19 20:11

こんばんは!



作業用のセルを設ければ可能だと思いますが、
この質問だけ限定の関数(ユーザー定義関数)を作ってみてはどうでしょうか?

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)通常のワークシート関数と同じ使い方をします。

Function kosuu(myRng As Range, myArea As Range) 'この行から//
Dim c As Range, cnt As Long
For Each c In myArea
If InStr(myRng, c) > 0 Then
cnt = cnt + 1
End If
Next c
If cnt = 1 Then
kosuu = "○"
Else
kosuu = "★"
End If
End Function 'この行まで//

表示したいセルに
=kosuu(A2,B2:K2)
という数式をいれてみてください。
※ 今回はこの質問限定としましたので
「○」と「★」の表示だけにしています。

※ エラー処理をしていませんので、
A列セルが空白の場合は「★」が表示されます。

コードに少しだけ手を加えれば。
個数だけをカウントし、他の関数との併用で
その結果に基づいた表示も可能です。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど、、そういうやり方もあるんですね><勉強になります。

お礼日時:2016/10/19 20:10

L2セルに判定式を表示するとして、次の式を入力する。


=IF(COUNTIF(B2:K2,A2)=1,"◯","★")
質問を誤解していれば、ごめんなさい。
    • good
    • 0
この回答へのお礼

いえいえ、ご回答ありがとうございます。><
私も言葉足らずでどう表現すればいいのか伝わり切れてなくて、すみません。

お礼日時:2016/10/19 20:09

質問の趣旨の確認です。


A2のセルに"123345"の文字があるとすると、
B2のセルは0が上記の文字内に1つあれば○、2つ以上あれば★、ないときは""を表示
C2のセルは1が上記の文字内に1つあれば○、2つ以上あれば★、ないときは""を表示
・・・途中省略・・・
K2のセルは9が上記の文字内に1つあれば○、2つ以上あれば★、ないときは""を表示

ということですか?
従って、A2が"123345"なら、以下のように表示ということですか?(□は空白("")の意味です)
  B C D E F G H I J K
2行□○○★○○□□□□
    • good
    • 0
この回答へのお礼

NO4回答者 tatsu99さんの内容が合ってます。
※該当数字という欄に数字がない場合は空欄で表示といった内容です。
例)
1列目 l該当数字 l 0 l 1 l 2 l  3 l 4 l 5 l
2列目 001225 ★ 〇  ★        〇

お礼日時:2016/10/19 20:08

数字の書かれているセルをA2、○、★、空白を表示させたいセルをB2、・・・K2とします。


B2のセルに以下のコードを設定してください。
=IF(ISERR(FIND(COLUMN()-2,INDIRECT("A2"))),"",IF(ISERR(FIND(COLUMN()-2,INDIRECT("A2"),FIND(COLUMN()-2,INDIRECT("A2"))+1)),"○","★"))
そして、B2のセルの内容をコピーし、C2からK2まで張り付けてください。
    • good
    • 0
この回答へのお礼

大変助かりました。
ちなみになんですが、1つあれば「〇」2つあれば「◎」3つ以上「★」・・という設定に変更する際

語尾の"○","★"))  ←のように続けて書けばいいのでしょうか?

お礼日時:2016/10/19 22:50

No.2です。



前回は大きな勘違いをしていました。
A列文字列の中に1行目の文字が一つの場合は「○」で二つ以上あれば「★」を表示すばよいのですね?
「該当数字」の列は、単に「001225」と入力しただけでは頭の「0」がなくなりますので、
A列の表示形式は「文字列」にしておきます。

IF関数のネストでもできますが、数式が長くなりますので、
↓の画像のようにM・N列に表を作成しておくのはどうでしょうか?

B2セルに
=VLOOKUP(LEN($A2)-LEN(SUBSTITUTE($A2,B$1,"")),$M:$N,2,1)&""
という数式を入れフィルハンドルで列・行方向にコピーしています。

こんな感じではどうでしょうか?m(_ _)m
「エクセル命令についてのご教授お願いします」の回答画像6
    • good
    • 0
この回答へのお礼

こういうやり方もあるんですね。。勉強になります。
回答ありがとうございます。

お礼日時:2016/10/19 22:45

No5です。


>ちなみになんですが、1つあれば「〇」2つあれば「◎」3つ以上「★」・・という設定に変更する際
>語尾の"○","★"))  ←のように続けて書けばいいのでしょうか?

残念ながら、そのようにはできません。根本的に関数式の組み直しになります。
(私が提示した方法ですと、多分、倍ぐらいの長さの式になります)
No6の方の回答を使えば、もしかしたら、多少の変更はあるかもしれませんが、比較的簡単に
修正できるかもしれません。No.6のかたにリクエストされてはいかがでしょうか。
    • good
    • 0

No7です。


1つあれば「〇」2つあれば「◎」3つ以上「★」のケースの関数式です。
前回のとは、根本的に違っています。(一部No6のかたのを参考に作っています)
=CHOOSE(LEN($A$2)-LEN(SUBSTITUTE($A$2,COLUMN()-2,""))+1,"","○","◎","★","★","★","★","★","★","★","★","★","★","★","★","★","★","★","★","★","★")

上記の式を、B2へ張り付けてください。(それを以前と同様にK2までコピーしてください)
尚、4個のとき、@にしたいなら2番目の★を@にしてください。
同様に、5個とき、※にしたいなら3番目の★を※にしてください。
以下同様です。
尚、この式には1点欠点があり、20桁の数字までしか対応していません。
もし、桁数を増やした場合は、"★"を増やしたい桁数分、最後に追加してください。
    • good
    • 0

No8です。


ほとんど、余興ですが、何桁(20桁以上でもOKです)でも対応できるようにしました。
以下の式をB2へ設定し、同様に、C2からK2へ設定してください。
=IF(LEN($A$2)-LEN(SUBSTITUTE($A$2,COLUMN()-2,""))>10,"☆",CHOOSE(LEN($A$2)-LEN(SUBSTITUTE($A$2,COLUMN()-2,""))+1,"","○","◎","★","④","⑤","⑥","⑦","⑧","⑨","⑩"))

④は同じ数字が4個の場合です。
⑤は同じ数字が5個の場合です。
・・・
⑩は同じ数字が10個の場合です。
11個以上は☆になります。
4個以上を★にしたい場合は、④から⑩及び☆を全て★に変えてください。
    • good
    • 0
この回答へのお礼

丁寧な説明ありがとうございます><

お礼日時:2016/10/21 20:31

No.2・6です。



No.5さんのお礼欄に
>ちなみになんですが、1つあれば「〇」2つあれば「◎」3つ以上「★」・・
とありましたのでまたまた顔を出しました。

Sheetの配置は前回の画像通りだとします。
M・N列だけに↓の画像のように手を加えれば
数式は前回のままで大丈夫です。

一応説明だけ・・・
基本的にはVLOOKUP関数の「TRUE」型を使用しています。
M列は昇順というコトが大前提になりますが、
↓の画像では

0以上1未満の場合 → 空白
1以上2未満の場合 → ○
2以上3未満の場合 → ◎
3以上の場合     → ★

といった感じで表にデータをいくら追加しても問題ありません。

余談ですが、数式の最後の部分
>&""
は結果が「0」の場合、空白セルが返り、「0」が表示されてしまいますので、
単に「0」を表示させないための処理です。m(_ _)m
「エクセル命令についてのご教授お願いします」の回答画像10
    • good
    • 0
この回答へのお礼

ありがとうございます。
自分の理想とする回答で満足してます。
まだまだ、勉強必要ですね・・><;頑張ります。

お礼日時:2016/10/21 20:30

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