[[20181224130753]] 『リストの一部一致について』(たたた) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リストの一部一致について』(たたた)

A列はなにも設定していない自由入力の欄としています。
B列はA列の入力にあたり含んでほしい記号などを【OKリスト】としています。
C列には入力されては困る【NGリスト】を作りました。
そのうえで、D列でA列の入力結果状況による点数化をします。
D列について、A列が未入力の場合は0、
A列に【OKリスト】を含んだ入力の場合は1、
A列に【NGリスト】を含んだ入力の場合2、
A列に【OKリスト】と【NGリスト】の両方を含んだ場合は3、
A列に【OKリスト】と【NGリスト】のどちらも含まない場合は4、
とD列に表示したいです。 【OKリスト】も【NGリスト】も追加されるので名前の定義でそろぞれリスト名称を付けています。 
if関数とcountif関数で行うことはできるのですか。

< 使用 アプリ:2007と2010、使用 OS:windows7、8,10 >


 いくつか例を挙げてもらうことはできませんか?

(稲葉) 2018/12/24(月) 13:48


【OKリスト】は、A、B1、B2、100、回答済、などです。
【NGリスト】は、1日、半日、時間、などです。
A列の入力は、【OKリスト】だけの入力であったり、【OKリスト】の記号と他の文言が組み合わされて(例:Aで終了。など)入力されることもあります。
基本的には【OKリスト】単独の項目が入力(例:A)されたり、【OKリスト】の項目を含んで自由に入力されるので(例:A日、A済)その場合は、1として、
【NGリスト】の項目が単独(例:1日)、【NGリスト】を含んだ入力(例:1日済)は2として、
【OKリスト】と【NGリスト】の組み合わせの場合(例:A1日)は3として、
両方のリストの記号を全く含まない場合は4とD列に入るように関数を設定したいです。
(たたた) 2018/12/24(月) 14:02

すみません。先ほどの例の(A日)は3となります。
(たたた) 2018/12/24(月) 14:09

 ん?
 A日 は 1 じゃないのですか?

(稲葉) 2018/12/24(月) 14:28


なんか説明がおかしくてすみません。
A日・・・は【NGリスト】の1日の「日」が入っているので、3になります。
(たたた) 2018/12/24(月) 14:31

 そうすると B1 も 3 になるんですか?

 もしそうなら、私にはできません。
(稲葉) 2018/12/24(月) 14:35

 追記
 1日済 も 3 ですよね?
 回答「済」 と 「1日」 を含むので。
(稲葉) 2018/12/24(月) 14:37

そうです。
(たたた) 2018/12/24(月) 15:27

 よーわからんけど
	A	B	C	D		
1		OK	NG			⇒リスト
2		A	日			⇒リスト
3		B1	時間			⇒リスト
4		B2				⇒リスト
5		100				⇒リスト
6		済				⇒リスト
7						⇒リスト
8						⇒リスト
9						⇒リスト
10						⇒リスト
11	A1日			3		⇒入力&数式
12	1日済			2		⇒入力&数式
13	1日			2		⇒入力&数式
14	数日			2		⇒入力&数式
15	A日			3		⇒入力&数式
16	A済			1		⇒入力&数式

 D11 =IF(A11="",0,TEXT(MMULT(COUNTIF(A11,"*"&$B$2:$C$10&"*")*($B$2:$C$10<>""),{1;2}),"0;;!4")*1)
 で、ええの?

 ※「回答済」は「済」、「1日」「半日」は「日」に変更してま。
 
(GobGob) 2018/12/24(月) 15:35

ありがとうございます!
やってみます!
(たたた) 2018/12/24(月) 15:39

 ありゃ、適当すぎましたわ。

 数式わすれてくださいw。やり直します。
(GobGob) 2018/12/24(月) 15:45

 やりなおしw

 D11 =IF(A11="",0,TEXT((SUMPRODUCT(COUNTIF(A11,"*"&B$2:B$10&"*")*(B$2:B$10<>""))>0)+(SUMPRODUCT(COUNTIF(A11,"*"&C$2:C$10&"*")*(C$2:C$10<>""))>0)*2,"0;;!4")*1)

 ※リスト10個くらいなら

 D11 =IF(A11="",0,TEXT(SUM((MMULT({1,1,1,1,1,1,1,1,1},COUNTIF(A11,"*"&B$2:C$10&"*")*(B$2:C$10<>""))>0)*{1,2}),"0;;!4")*1)

 でも。
(GobGob) 2018/12/24(月) 16:05

 うーーん
 悩んだ末の結果です。

    |[A]    |[B]|[C] |[D]|[E]                   |[F]                                                                                                                    
 [1]|A      |A  |日  |  1|OK単独                |=IF(A1="",0,CHOOSE(MAX(INDEX(COUNTIF(A1,"*"&$B$1:$B$5&"*")*1,))+MAX(INDEX(COUNTIF(A1,"*"&$C$1:$C$3&"*")*2,))+1,4,1,2,3)
 [2]|Aテスト|B1 |半日|  1|OK複合                |                                                                                                                       
 [3]|日     |B2 |時間|  2|NG単独                |                                                                                                                       
 [4]|1日済  |100|    |  3|NG複合                |                                                                                                                       
 [5]|1日A   |済 |    |  3|OKNG複合              |                                                                                                                       
 [6]|テスト |   |    |  4|いずれも含まない      |                                                                                                                       
 [7]|       |   |    |  0|空白                  |                                                                                                                       
 [8]|a      |   |    |  1|大文字小文字区別しない|                                                                                                                       
(稲葉) 2018/12/24(月) 16:09

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.