• 締切済み

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

nanase_p_qの回答

回答No.1

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

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • C言語の配列の使い方について質問です。

    以下のプログラムを配列を使って見やすくしたいのですが、どのように作ったら良いでしょうか? 宜しくお願いします。 #include<stdio.h> int main(void) { int a, b, c, d, e, f, g, h, i, j, k, l, m ,n, o; /*5段目の処理*/ for(a = 1; a <= 15; a++) { for(b = 1; b <= 15; b++) { if(a == b) continue; for(c = 1; c <= 15; c++) { if(a == c || b == c) continue; for(d = 1; d <= 15; d++) { if(a == d || b == d || c == d) continue; for(e = 1; e <= 15; e++) { if(a == e || b == e || c == e || d == e) continue; // printf("%d %d %d %d %d\n", a, b, c, d, e); ////4段目//// if(a>b){ f=a-b; } else if(a<b){ f=b-a; } if(b>c){ g=b-c; } else if(b<c){ g=c-b; } if(c>d){ h=c-d; } else if(c<d){ h=d-c; } if(d>e){ i=d-e; } else if(e<d){ i=e-d; } // printf(" %d %d %d %d \n", f, g, h, i); /////3段目//// if(f>g){ j=f-g; } else if(f<g){ j=g-f; } if(g>h){ k=g-h; } else if(g<h){ k=h-g; } if(h>i){ l=h-i; } else if(h<i){ l=i-h; } // printf(" %d %d %d \n", j, k, l); /////2段目//// if(j>k){ m=j-k; } else if(j<k){ m=k-j; } if(k>l){ n=k-l; } else if(k<l){ n=l-k; } // printf(" %d %d \n", m, n); /////三段目///// if(m>n){ o=m-n; } else if(m<n){ o=n-m; } // printf(" %d \n", o); if(a != b != c != d != e != f != g != h != i != j != k != l != m != n != o){ printf("%d %d %d %d %d\n", a, b, c, d, e); printf(" %d %d %d %d \n", f, g, h, i); printf(" %d %d %d \n", j, k, l); printf(" %d %d \n", m, n); printf(" %d \n", o); } } } } } } }

  • エクセルの使い方についてお教えください。

    エクセルの使い方についてお教えください。 例えば、 a | b | f c | g | j d | h | k | m e | i | l | n | o | のように、右肩下がりになっている列を、 a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | のように一列にまとめる方法は無いでしょうか? 何卒よろしくお願いいたします。

  • Bシェルで、1文字づつ読み込む方法を教えてください。(バイナリ)

    Bシェルで、1文字づつ読み込む方法を教えてください。(バイナリ) 以前、下記の質問をして、回答を頂きました。 この中の入力ファイル『test.txt』がバイナリ形式だった場合は、 どのようにしたら良いでしょうか。 ### 質問 ############################################ 次のように文字が並んでいて、 A B C D E F G H I J K L M N O P それぞれの番地と共に、上記の文字を出力する場合、 どのようにしたら宜しいでしょうか。 入力ファイル:test.txt A B C D E F G H I J K L M N O P ↓ 1 2 3 4 1 A B C D 2 E F G H 3 I J K L 4 M N O P ↓ 出力ファイル A 1 1 B 2 1 C 3 1 D 4 1 E 1 2 F 2 2 G 3 2 H 4 2 I 1 3 J 2 3 K 3 3 L 4 3 M 1 4 N 2 4 O 3 4 P 4 4 ### 回答 ############################################ yy=1 while read line; do xx=1 set -f $line while [ $# -gt 0 ]; do echo $1 $xx $yy shift xx=`expr $xx + 1` done yy=`expr $yy + 1` done < test.txt ##################################################### どうぞ宜しくお願い致します。

  • Bシェルで、1文字づつ読み込み、番地と共に出力する方法を教えてください。

    Bシェルで、1文字づつ読み込む方法を教えてください。 次のように文字が並んでいて、 A B C D E F G H I J K L M N O P それぞれの番地と共に、上記の文字を出力する場合、 どのようにしたら宜しいでしょうか。 入力ファイル:test.txt A B C D E F G H I J K L M N O P ↓ 1 2 3 4 1 A B C D 2 E F G H 3 I J K L 4 M N O P ↓ 出力ファイル A 1 1 B 2 1 C 3 1 D 4 1 E 1 2 F 2 2 G 3 2 H 4 2 I 1 3 J 2 3 K 3 3 L 4 3 M 1 4 N 2 4 O 3 4 P 4 4 番地に関しては、次のシェルを作成しましたが、 test.txtをどのように入力したら良いかが分かりません。 Xmax=4 Ymax=4 yy=1 while [ $yy -le $Ymax ] ; do xx=1 while [ $xx -le $xMax ] ; do echo $xx $yy | awk '{ printf(" %d %d ",$1,$2) }' >>out.txt xx=`expr $xx + 1` done yy=`expr $yy + 1` done 宜しくお願いします。

  • エクセルデータの並び替え

    A列に 1 2 3 4 5 6 7 ・・・・・ B列に a b c d e f g h i j k l ・・・・ と文字列があります。 これを C列に 5つずつデータをセットにして並べたいのです。 A列    B列           C列 1     a      1 a   2 b  3 c  4 d  5 e 2     b      6 f   7 g  8 h  9 i  10 j 3     c      11 k  12 l  13 m  14 n  15 o 4     d      16 p   17 q  18 r  19 s  20 t 5     e      以下同じように続く 6     f 7     g 8     h 9     i 10     j 11     k 実際のC列のデータは トマト tomato  ネコ cat   机 desk  いす chair  かばん  bag  のようにしたいのです。 関数の扱いがわからずに苦戦しています。どうぞ、よろしくお願いします。

  • ExcelシートからA,B,C,D,Eといったようにコンマ区切りで 抜き出したい

    ExcelVBAに関するマクロについて教えてください。 A|B|C|D|E|○ -+-+-+-+-+-- F|G|H|I|J|× -+-+-+-+-+-- K|L|M|N|O|○ というExcelがあったときに 1行6列目のように○があれば、 A,B,C,D,Eといったようにコンマ区切りで 抜き出したいですが、マクロの組みかたが 分かりません。 ×のときは、無視し、3行目は○なので 改行した上で再び一行抜きたいです。 親切な方教えてください。 ヒントだけでもかまいません。 よろしくお願いします。

  • C言語の演算子!=の使い方で質問です。

    if(a != b != c != d != e != f != g != h != i != j != k != l != m != n != o) 上記は間違いです。 変数a~nが同じじゃなければとしたいのです。 ご指導お願いします。

  • エクセルのデータ並び替え

    列(A)に1000個あるデータを、4列X250行に自動的に並び替える方法はありますか? つまり A   A B C D B   E F G H C ⇒ I J K L D   M N O P E   ・ ・ ・ ・ ・ ・ ・ と、並べかえたいのですが、いい方法はありませんでしょうか?

  • A∪B

    docomo携帯とsoftbank携帯を使っています。 この双方の電話帳を統合したい場合はどうすればいいでしょうか? docomo     a b c d / e f g softbank    a b c d / h i j → 両方とも a b c d e f g h i j にしたい。 算数でいうところの「A ∪ B」に両機ともしたいです。 実際の登録数はもっと数が多いです。よろしくお願いします。