『関数の解説お願いします』(ちょこ) お世話になっております。 今回は私の前に働いていた人が残していったエクセルの関数の式について解説をしていただけたらありがたいです。 =IF(RIGHT(CELL("filename",$A$1),1)<>")","1",MID(RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1))),FIND("(",MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31))+1,FIND(")",RIGHT(CELL("filename",$A$1),LEN(CELL("filename",$A$1))-FIND("]",CELL("filename",$A$1))))-FIND("(",MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31))-1))*3-2 この式はいったい何をしているのでしょう? この式が必要なのか知りたいのですが、 なにぶん式が長すぎてどんなことをしているのかが分かりません。 どなたか分かりやすく何をしている式か教えてくださるとありがたいです。 ---- シート名を使ってなんかの計算してるんじゃない? CELL("Filename",A1) +RIGHTやFIND → シート名取得 (GobGob) ---- ・シート名の最後が「)」でない場合は文字列で「1」を返す。 ・他のときはカッコで囲まれた数字を返す。 ・それらの結果に3をかけて2を引く。 かな? =IF(RIGHT(CELL("filename",A1))<>")",1,-LOOKUP(1,-LEFT(REPLACE(CELL("filename",A1),1,FIND("(",CELL("filename",A1)),""),ROW(A$1:A20))))*3-2 でもいいね。 (GobGob) ---- =IF(RIGHT(CELL("filename",A1))<>")",1,SUBSTITUTE(REPLACE(CELL("filename",A1),1,FIND("(",CELL("filename",A1)),""),")",""))*3-2 配列数式にする必要もないか。 (GobGob) ---- おお! なるほど!ありがとうございます! このセルを使った数式で=IF(G32="―","",OFFSET(表紙!$P$5,J31,0))という式があって、この式のJ31が質問した式が入っているセルです。そしてその値は『1』でした。 この2つの式が同じように3つ先のセルにはいっていてその値は1,2,3・・と順番どおりだったので OFFSETで使うだけならこんなややこしい式はいらないんじゃないかと思ったんですが やはりそんな簡単ではなかったみたいですね; お二人ともありがとうございました。 (ちょこ)