• ベストアンサー

エクセル2010の関数について

2,3,6,1,10 上のような文字列がB1に入力されている時 (配列ではありません) A1に1と入力するとC1に2と表示させたいです (2は3、3は6です) 数字に規則はなく、桁数もバラバラです 出来ればvba以外で回答お願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.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」)を取り出そうとしても、エラーとなります。

atamanotaisou1
質問者

お礼

有難う御座いました 解決しました

関連するQ&A