- ベストアンサー
エクセル2010の関数について
2,3,6,1,10 上のような文字列がB1に入力されている時 (配列ではありません) A1に1と入力するとC1に2と表示させたいです (2は3、3は6です) 数字に規則はなく、桁数もバラバラです 出来ればvba以外で回答お願いします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
C1セルには次の様な関数を入力されると良いと思います。 =IF(AND(ISNUMBER(1/(INT(A1)=A1)/(A1>0)),B1<>""),IF(A1>LEN(B1)-LEN(SUBSTITUTE(B1,",",))+1,"【"&A1&"番目のデータはありません】",REPLACE(LEFT(","&B1,FIND(CHAR(1),SUBSTITUTE(B1&",",",",CHAR(1),A1))),1,FIND(CHAR(1),SUBSTITUTE(","&B1,",",CHAR(1),A1)),)),"") 但し、取り出した値は数値データではなく、文字列データとなります。 もし、数値データとして値を取り出さねばならない場合には、次の様な関数となります。 =IF(AND(ISNUMBER(1/(INT(A1)=A1)/(A1>0)),B1<>""),IF(A1>LEN(B1)-LEN(SUBSTITUTE(B1,",",))+1,"【"&A1&"番目のデータはありません】",REPLACE(LEFT(","&B1,FIND(CHAR(1),SUBSTITUTE(B1&",",",",CHAR(1),A1))),1,FIND(CHAR(1),SUBSTITUTE(","&B1,",",CHAR(1),A1)),)+0),"") 但し、2番目に挙げた関数では、B1列に入力されている文字列が、例えば 2,3,A,1,10 の様に、文字と数字が混在している場合には、文字(この例では3番目の「A」)を取り出そうとしても、エラーとなります。
お礼
有難う御座いました 解決しました