• ベストアンサー

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

数値データが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/17068)
回答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

  • エクセル関数の演算後のデータ

    エクセルのVLOOKUP等関数でデータを引っ張ってきたとします。例えば社員番号番を基に名前や住所などを。その場合データが表示されているセルには既にVLOOK等の関数が入力されていますので、セルに入っているのは当然抽出したデータのみではありません。データが うまく抽出された後、そのセルに結果として得られたデータのみを、例えば数値データなら数値データ、文字データなら文字データとしてセルに格納することは出来るのでしょうか?つまりセルの中の関数式を取り去り、結果として出たデータのみを残しておきたいのですが・・・何か特殊な式が必要でしょうか?セルの設定のみで結果データのみを残す方法はありますか?結果をコピーして値のみを貼り付けとする以外にないでしょうか。

  • Excelの関数?で困っています。

    Excelの関数?で困っています。 こんにちは。Excel2007を使用しています。 セルの中にある特定の文字が含まれている場合は、ある文字の後ろの数値を抽出するということはできますか? 例えば、セルA1に『AA-11 $100.00』、A2に『BB $ 95.00』と入力されている場合、『AAという文字が含まれている場合はB1に$マークの後ろの数値を抽出、BBという文字が含まれている場合はC1に$マークの後ろの数値を抽出する』というものを関数などを使用して作ることはできるのでしょうか? もしできるのであれば、ぜひご教示ください。 宜しくお願いします。

  • エクセル関数式

    ひとつのセルに、12桁の数値を入力し、12桁のうちの左から、2桁目、4桁目、6桁目、8桁目、10桁目、12桁目を抽出し、個々のセルに表示したいのですが、どういった関数を使えばよいですか? 教えてください。m(--)m

  • エクセル関数について

    エクセルの関数について質問です。 例えば、 C1セルには、数値データが入っています。 A2~A10セルに日付データ。 B2~B10セルに数値データが入っている表があります。 B11セルの値に、(C1データ)-(A列の最新日付セルと同行のB列データ)を表示させたい場合、 どのような関数を作成すればよいですか。 宜しくお願いします。

  • エクセル関数の書き方、入力方法

    エクセル関数の初心者です。関数の書き方で下記の内容について教えて下さい。 例えば、1行のセルA1~P16の表に入力された数値(1~3桁)で、少ない数値を5個を自動的に抽出し、その平均値を出す関数の書き方が分かりません。 但し、表中に同じ少ない数値が複数有る場合、その複数を含め5個抽出する式としたいのですが、どのような関数とすればよいでしょうか。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについてですが、一番取り扱いに困っている所は、社員の給与リストとかで、ある特定のデータ、例として事務員(一つの行の例えば一つのセルに名前、一つ横のセルに給与の数字(数値データ)がはいっている)を抽出した場合(事務員の記号がどこか同じ行にはいっているとして)数値の列を開いているセルで関数処理したい場合、表示されている数字だけを処理する場合と隠れている(多分)データも処理してしまう場合があり大変戸惑っています。なんとかどちらかに統一したいのですが、自分なりに調べましたが分かりません。どなたかご存知ないでしょうか。また、このオートフィルタで特定の数字や文字を抽出しようとしてもうまくいく時とそうでない時があります。なぜなのでしょうか。これはバグと考えても?

  • エクセルの関数でこんなことできますか?

    あるデータ内で一番多いものを抽出する場合はMODE関数を使うとこまではわかるのですが、重複した場合はMODE関数の場合は一番先に多くなった数値が抽出されるのですが、私が考えているのは、重複した場合は別の条件で抽出させたいのです。しかも、元のデータが最大5つの中から判定するので、場合によっては違うデータが一つずつになってMODE関数が抽出できない場合も出てくるのでその場合は別の条件で抽出させたいのです。 文章だとわかりにくいので例を作ります。 日付     条件     区分 1月10日   5      D 2月22日   7      C 3月15日   10      A 4月19日   5      D 5月22日   10      A で、この場合はAを抽出させたいのです。 あと『区分』の値が全部違う値の場合は『条件』の一番いい値を 抽出させたいのですが、どんな関数を使えばよろしいでしょうか? 長々と書いてしまいスミマセン。 誰か教えてください。

  • エクセルの関数について2

    前にも同じような質問をしたのですが、それは解決できましたが、また新たに、問題が発生しました。問題は次のとおりです↓ 96 35 111 44 -51 -38 -89 -47 -49 たとえば↑のようにひとつひとつのセルに+の数字と-の数字があるとします。 これらの数値はリアルタイムで数値が変わります。 平均値12 というのがあって、もちろん上の数値が変われば、平均値も変わりますが、これであれば、12以上の数字を抽出し足し算するようにしたいのです。 SUMIF関数を使ってやろうとしたんですが、セルが0になってしまい、うまくできません。 関数の使い方があればぜひとも知りたいのですが、よくわかり ません。わかる方がいればよろしくおねがいします。

  • エクセル関数

    エクセル2003を使っています。 エクセル関数を使って 以下のような複数データの中から、一つ以上存在するデータを抽出する関数を教えてください。 重複している場合は、一つだけ抽出します。 セルA1 山田   セルB1 山田    セルA2 佐藤   セルB2 佐藤 セルA3 井上   セルB3 井上 セルA4 佐藤   セルB4 三田 セルA5 三田   セルB5 (以下空白) セルA6 井上 よろしくお願いします。

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

    下記のような作業をしてくれる関数が知りたいと思います。 たとえば、「1・3・9・15・46・87」という数値データのフィールドがあったとします。範囲を100としたときに、出ていない数値を抽出し、その個数を表示する関数が必要です。前期の例でいうと、出てない数値は、2・4・5・6・7・8・10・11…ということになり、その個数は94です。こうした作業は、関数でできるものなのでしょうか。詳しい方、教えてください。よろしくお願いします。

専門家に質問してみよう