• ベストアンサー

エクセルの関数を教えてください

数値データが24個横に並んでいて右からいくつかのデータは”0”です。その時、”0”の左のセルの数値、言い換えると一番右端の実数を抜き出したい場合はどういう関数を使えばいいでしょうか? たとえば、 1,3,4,6,8,9,1,5,4,9,8,5,3,6,0,0,0,0,0,0,0,0,0,0 の場合は”6”で、 1,3,4,6,8,9,1,5,4,9,8,5,3,6,8,0,0,0,0,0,0,0,0,0 の場合は”8”を抽出したいのです。 よろしくお願いします

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

A1:H1(0も含めて)にデータが入っているとして 例えばA2セルに =OFFSET(A1,0,MATCH(0,A1:H1,0)-2)と入れる。 私の例では、F列から0が始まるので、E列の9と出ます。

toshie
質問者

お礼

やってみましたところ、確かにできました やっぱりそういう関数ってあるんですね 助かりました どうもありがとうございました

その他の回答 (5)

  • kbonb
  • ベストアンサー率51% (254/492)
回答No.6

こんにちは =INDEX(A1:X1,MATCH(0,A1:X1,0)-1) でいかがでしょうか?

参考URL:
http://www2.odn.ne.jp/excel/
toshie
質問者

お礼

やってみましたところ、確かにできました やっぱりそういう関数ってあるんですね 助かりました どうもありがとうございました

回答No.5

その配列らしき数字の羅列は1つのセルに格納されているのでしょうか? あるいは1つのセルに1つの数字が格納されていてそれが並んでいるのでしょうか? どっちにしろ、デフォルトの関数でやるとかなりサイズが大きくなりそうなので、マクロでオリジナルの関数を作成した方がいいと思います。

toshie
質問者

お礼

説明不足ですいませんでした 1つのセルに1つの数字が格納されていてそれが並んでおります 質問ありがとうございました また、よろしくお願いします

  • ma_
  • ベストアンサー率23% (879/3732)
回答No.4

数値データが、 1,3,4,6,8,9,1,5,「0」,9,8,5,3,6,0,0,0,0,0,0,0,0,0,0 というように、連続するゼロ以外の数字列の部分にもゼロは発生する可能性も ないとも言えないのですが、それは、ないのでしようか。

toshie
質問者

お礼

数値部分は必ず0ではない実数なのです 質問ありがとうございました また、よろしくお願いします

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.3

>たとえば、 1,3,4,6,8,9,1,5,4,9,8,5,3,6,0,0,0,0,0,0,0,0,0,0 >の場合は”6”で、 上の数値データがセルA1~X1に入っているとします。 セルA2に、=SUM(B2:X2)と入力します。 セルB2に、=IF(A1*B1=0,A1,0)と入力します。 セルB2の関数をセルX2まで複写してください。 お求めの抽出したい数値がA2のセルに表示されるはずです。 IF関数の役割は、直上のデータと一つ前のデータの積をとります。 たとえば、セルR2でいうと、セルR1とQ1が0でなければ0です。 このとき、セルR1*Q1が0であるということは、R1かQ1の少なくともどちらかが0です。 で、表示させるのは一つ前のデータ(この場合はQ1)なので、 もしQ1とR1がともに0ならば0を表示します。 R1のみが0ならば、お求めの数値Q1のデータが表示されます。 セルA2にSUM関数を入れたのは、抽出した数値の表示されるセルが、あちこちにあると面倒だからです。 お求めの数値が表示されるセル以外は、すべて0なので単純にSUMでOKです。 いかがでしょうか。 ちなみに「A1が0ではない」という条件で作ってます。

toshie
質問者

お礼

回答ありがとうございました また、よろしくお願いします

  • yama_x
  • ベストアンサー率20% (188/940)
回答No.1

ものすごい力業(?)しか思いつきませんが・・・ A1からA24まで数字が入っているとします。 A25のセルに以下の式を入力します。 =if(a1=0,"",a1)&if(a2=0,"",a2)&if(a3=0,"",a3)& ・・・・・&if(a24=0,"",a24) そうすると、上の行で言えば 13468915498536 が 下の行であれば 134689154985368 がA25に表示されます。 次にA26に以下の式を入力します。 =right(a26,1) そうすると、A25に上の行なら6、下の行なら8が 表示されます。 かなり力業で、あまりスマートではありませんが、 一応、対応可能かと・・・

toshie
質問者

お礼

回答ありがとうございました また、よろしくお願いします

関連するQ&A