新しく質問する

列A,列Bを参照して列Cにそれに対応する文字列を表示

役に立った:0件
  • 質問者:fa46
  • 投稿日時:2007/01/27 21:28
  • 困り度:暇なときに回答をください
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

列A,列B,列C
4,8,A
4,9,B
4,10,B
4,11,C
4,12,C
4,13,D
3,8,E
3,9,F
3,10,F
3,11,G
3,12,G
3,13,H
2,8,I
2,9,J
2,10,J
2,11,K
2,12,K
2,13,L
1,8,M
1,9,N
1,10,N
1,11,O
1,12,O
1,13,P

列Aに1~4,列Bに4~20の値を入れ、
列Cに、計算式で上記のような文字列を表示させたいのですが、
if関数のネストが7つまでらしく8つ以上が出来ません。
何か方法がありましたらお願いします。

=IF(AND(A2=4,B2<=08),"A"
,IF(AND(A2=4,B2<=10),"B"
,IF(AND(A2=4,B2<=12),"C"
,IF(AND(A2=4,B2>=13),"D"
,IF(AND(A2=3,B2<=08),"E"
,IF(AND(A2=3,B2<=10),"F"
,IF(AND(A2=3,B2<=12),"G"
,IF(AND(A2=3,B2>=13),"H"))))))))

この質問に回答する
このQ&Aは役に立ちましたか?(役に立った:0件)

回答(5件)

  • 参考になった:0件
  • 回答者:maron--5
  • 回答日時:2007/01/28 07:40

◆こんな方法もありますよ
=CHAR(65+(4-A1)*4+INT((B1-7)/2))
または、
=SUBSTITUTE(ADDRESS(1,(4-A1)*4+INT((B1-7)/2)+1,4),1,)

通報する

  • 参考になった:0件
  • 回答者:imogasi
  • 回答日時:2007/01/27 23:27

A列、B列は正整数を採るとする。
どこか邪魔にならないセル範囲に
例えばH1より右に
ーH・・・・・・・・・・・・・T
ー123・・8910111213・・
(1)・・・・・M N N O O P
(2)・・・・・I J j K K L
(3)・・・・・E F F G G H
(4)・・・・・A B B C C D
(後は質問ではわからないので、入れてください)
といれて、表を作る。
C1に =INDEX($H$2:$T$5,A1,B1)
C1の式を下方向に複写する。
一例で
18M
19N
110N
111O
112O
113P
Ifは表引きの場合は使わない。
3-4段以上ネストする場合は、他の方法を考えること。

通報する

  • 参考になった:0件
  • 回答者:mike_g
  • 回答日時:2007/01/27 23:02

  A B  C D  E  F
1  4  8 A    8 A
2  4  9 B    9 B
3  4 10 B   11 C
4  4 11 C   13 D
5  4 12 C   108 E
6  4 13 D   109 F
7  3  8 E   111 G
8  3  9 F   113 H
9  3 10 F   208 I
10 3 11 G   209 J
11 3 12 G   211 K
12 3 13 H   213 L
13 2  8 I   308 M
14 2  9 J   309 N
15 2 10 J   311 O
16 2 11 K   313 P
17 2 12 K
18 2 13 L
19 1  8 M
20 1  9 N
21 1 10 N
22 1 11 O
23 1 12 O
24 1 13 P

C1: =VLOOKUP((4-A1)*100+B1,E$1:F$16,2)

通報する

  • 参考になった:0件
  • 回答者:Wendy02
  • 回答日時:2007/01/27 22:20

こんばんは。

C2:~

=IF(AND(A2>0,B2>0,COUNTA(A2:B2)=2),CHAR((4-A2)*4+64+ROUNDUP(MIN(8,MAX(2,(B2-6)))/2,0)),"")

こんなところかな?

通報する

  • 参考になった:0件
  • 回答者:nanase_p_q
  • 回答日時:2007/01/27 21:42

IF関数のみでは実現が難しいと思われますので、CHOOSE関数を組み合わせてみましょう。

=CHOOSE(インデックス,値1,[値2],・・・)


列A,列B,列C
4,8,A
4,9,B
4,10,B
4,11,C
4,12,C
4,13,D
3,8,E
3,9,F
3,10,F
3,11,G
3,12,G
3,13,H
2,8,I
2,9,J
2,10,J
2,11,K
2,12,K
2,13,L
1,8,M
1,9,N
1,10,N
1,11,O
1,12,O
1,13,P

問題の値は、列Aのみを見てみると4,3,2,1と並んでいますね。
そこで、CHOOSEを使うことによって、振り分けることができます。

=CHOOSE(A1,"値1","値2","値3",・・・)
のような具合です。
A1に1が入力された場合、"値1"がかえってくることになります。



そこで数式の例です。

=CHOOSE(A1,CHOOSE(B1-7,"M","N","N","O","O","P"),
CHOOSE(B1-7,"I","J","J","K","K","L"),
CHOOSE(B1-7,"E","F","F","G","G","H"),
CHOOSE(B1-7,"A","B","B","C","C","D"))

なぜB1-7としているかというと、8,9,10,11,12という並びなので7を引いて1,2,3,4,5というならびにしたのです。

通報する

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter