出産前後の痔にはご注意!

こんにちは。

プロジェクトの計画/実績の遂行率表を作成しています。
ある行に月度ごとの遂行率を数式で取得してパーセンテージ表示しています。
その行で、一番最新の数値にあたるのが、0%を除く一番右端の値になります。
この値をできれば関数で取得したいのですが、どうにもうまくいきません。

1つの月度が1列だけであればMATCH関数やVLOOKUP関数で取得できるのですが、
1つの月度内でも項目が多数あるためこれではだめでした。
また、http://oshiete.goo.ne.jp/qa/935713.html にある方法も試してみましたが、
あらかじめ先の月度の計画値を入れているので遂行率に0%表示が出るため、
数値と判断されて失敗でした。

どなたかご存知の方教えていただきたいです。
よろしくお願いします。

A 回答 (3件)

こんな感じかな


=LOOKUP(1,0/A1:Z1,A1:Z1)
0以外の数値を対象とします
    • good
    • 2

一番簡単な方法は、


>あらかじめ先の月度の計画値を入れているので遂行率に0%表示が出るため、

この数式を
=IF(条件が成立したら,遂行率の計算式,"")
に手直して、ご覧になった過去ログの数式で右端の数値を取ってこさせます。


どうしても今のゼロ表示を消したくないのでしたら、この式を
=IF(条件が成立したら,遂行率の計算式,"0%")
と変えてもOKです。



ご相談の直接の回答としては
例えばB2:M2に数字数字数字…0%0%0%が並んでいるとすると
=INDEX(2:2,MAX(IF(B2:M2>0,COLUMN(B2:M2))))
と記入して、必ずコントロールキーとシフトキーを押しながらEnterで入力します。
    • good
    • 0

=LOOKUP(1,0/(A1:Z1>0),A1:Z1)

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q値が入っている一番右のセル位置を返す方法

たとえばA行に値(文字列)が横に並んでいるとして
値が入っている一番右のセルの位置を返すようにするにはどのようにすればいいでしょう?

Aベストアンサー

セルの位置を返したいのであれば
=CHAR(MATCH(MAX(1:1)+1,1:1,1)+64)&1
でどうでしょうか。

Q初めて0以外の数値が出てきたときの値を表示(EXCEL)

化学系の仕事をしていて実験の値をエクセルでまとめています。
こんなことは出来るのでしょうか?

1分ごとに測定を行いますが、はじめの数分は0の値が続きます。
簡単に例を挙げるとこんな感じです。
【例】
分→測定値
00→0
01→0
02→0
03→0
04→2.36
05→4.83
06→3.52

このとき初めて数値が0以外の値が出たときの2.36の値を適当なセルに表示させるにはどのような方法がありますか?測定値の数値には規則性がないのでMAX関数やMIN関数が使えません。何かいい方法教えてください。

Aベストアンサー

A列にデータがあるとしたら、
=INDEX(A1:A99,MATCH(TRUE,A1:A99<>0,0))
を配列数式として入力(Ctrl+Shift+Enter)
でいかが?

Q値の入っているセルのうち、一番右側の値を取得したい(エクセル)

現在、データを左から右へ順次追加しています。
一番右側が、最新データとなります。
やりたいことは、複数の行にある、最新データを拾って、グラフを作成したいと思ってます。
どうやったら、できるのでしょうか?


<イメージ?>
●:最新データ
×:古いデータ
○:空欄
●のみを拾って、グラフを作成したい。

×××××●○
××××●○○
×●○○○○○
××××●○○

Aベストアンサー

こんにちは。maruru01です。

データがB列から、順に右へ入力されていくとして、A列に最新データを表示する場合は、

A1を選択して数式バーに、

=INDIRECT(ADDRESS(ROW(),MAX(IF(LEN($B1:$M1),COLUMN($B1:$M1)))))

と入力し、まだカーソルが数式バーにある状態で[Ctrl]と[Shift]を押しながら[Enter]を押して決定します。
(数式の両端に「{}」が付いて配列数式になります。)
これを下の行へコピーします。
あとは、このA列の値でグラフを作成すればいいと思います。
なお、上記の数式ではデータ入力範囲をB~M列にしましたが、後ろの列は、データを入力する可能性のある最大の列にして下さい。
(何列まで入力するか分からない場合は、エクセルの最終列のIVにしましょう。)

各関数については、ヘルプなどを参照して下さい。
配列数式については、以下のページを参考にして下さい。

http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm

参考URL:http://pc21.nikkeibp.co.jp/pc21/pc_10/hr_top.htm

こんにちは。maruru01です。

データがB列から、順に右へ入力されていくとして、A列に最新データを表示する場合は、

A1を選択して数式バーに、

=INDIRECT(ADDRESS(ROW(),MAX(IF(LEN($B1:$M1),COLUMN($B1:$M1)))))

と入力し、まだカーソルが数式バーにある状態で[Ctrl]と[Shift]を押しながら[Enter]を押して決定します。
(数式の両端に「{}」が付いて配列数式になります。)
これを下の行へコピーします。
あとは、このA列の値でグラフを作成すればいいと思います。
なお、上記の数式ではデータ入...続きを読む

Qエクセルにおいて、数値が入っている一番右端のセルの値を取得する方法

エクセルに、左から順にデータを追加しています。
よって、一番右端が最新版となります。
その一番右端のデータのみを取りだして、自動的に作表するようにしたいのですが、どうすればよいでしょうか。
よろしくお願いします。

Aベストアンサー

こんにちは。

一行目を検索するとして、

入力が文字列だけなら、
=INDEX(1:1,MATCH("ー",1:1))

数値だけなら、
=INDEX(1:1,MATCH(9E+307,1:1))
・・・9e307は、十分に大きな数字なら何でもよいです。

どちらか分からないなら、組み合わせて
=INDEX(1:1,MAX(MATCH({"ー",9E+307},1:1)))

1:1というのは、A1:M1と書き換えてもよいです。
A1:M1と書けば、A1:M1のなかで一番右端の値を
参照します。

QExcelで、条件と一致する最後のセルを検索したい

Excelで、条件と一致する最後のセルを検索したいのですが、どの関数をどのように使えばいいかわかりません。
どなたかお力をお貸し下さい。

問)
日付  社名  品名  個数
1/1   A    あ    1
1/1   C    い    2
1/2   B    う     3
1/2   A    え    4
1/3   C    お    5
1/3   A    あ    3

答)
A社の最終購入日は  1/3 あ 3
B社の最終購入日は  1/2 う  3
C社の最終購入日は  1/3 お 5

となるようお願いします。

Aベストアンサー

エクセルには「最後の該当」を検索する関数はありません。
無駄に複雑な数式を駆使すればもちろん「やればできます」が、添付図のようにちょっと工夫するだけで、普段使いの数式だけでやっつけるのがお勧めです。

A2:
=IF(OR(C2="",COUNTIF($C$2:C2,C2)<COUNTIF(C:C,C2)),"",C2)
以下コピー

答えは簡単なVLOOKUP関数を使うだけです。
H2:
=IF(COUNTIF($A:$A,$G2),VLOOKUP($G2,$A:$E,2,FALSE),"")




まぁ一応ご参考に作業列を使わない方法:
H2:
=IF(COUNTIF($C:$C,$G2),INDEX(B:B,MAX(IF($C$2:$C$999=$G2,ROW($C$2:$C$999)))))
と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力する

説明は省略しますので、ブラックボックスで使ってください。

Qエクセルの関数(最後の値を返す)

A1からJ65までの範囲のなかで (計算式などが入ってるセルも含まれてます)
J列の最後に表示されている値を返したいのですが どんな計算式をしていいか 調べてもわからず困っています。

J35のときもあればj40のときもあります。
ちなみにJ列にはすべて 計算式がはいってます。
その計算結果が表示されているセルと空白のセルがあります。
(J1からJ40まで値表示J41からしたは空白表示のときJ40を返したい
このときA列はA1からA40までは値が入力されてますがA41からしたはまったくの空白です)

Aベストアンサー

計算結果が数値なのであれば
=INDEX(J:J,MATCH(MAX(J:J)+1,J:J,1))
でJ列の最後に表示されている値を返します。 

QEXCEL 関数 選択範囲一番右のセル番地確認方法

いつもお世話になっております。

EXCELの関数について相談をさせてください。
選択範囲($AC11:$IV11)で入力されているセルの一番左のセル番地を返す関数はありますでしょうか。
一番右のセルは、以下の関数で取得できるのですが、一番左が取得できません。

=INDIRECT(ADDRESS(7,LARGE(INDEX(($AC11:$IV11<>"")*COLUMN($AC11:$IV11),),1)))

ご存じの方がおられましたら、ご教授いただけませんでしょうか。
以上、よろしくお願いいたします。

Aベストアンサー

なぜ、そのような回りくどい数式を考えるのだろう??

そのまま考えて一番右
=INDEX($7:$7,MAX(IF($AC11:$IV11<>"",COLUMN($AC11:$IV11))))
[Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる)

一番左
=INDEX($7:$7,MIN(IF($AC11:$IV11<>"",COLUMN($AC11:$IV11))))
[Ctrl]+[Shift] +[Enter] で確定

11行目 文字列なら
一番左
=INDEX($AC$7:$IV$7,MATCH("*",$AC11:$IV11,0))
一番右
=INDEX($AC$7:$IV$7,MATCH("ーー",$AC11:$IV11))

11行目 数値なら 一番右
=INDEX($AC$7:$IV$7,MATCH(8^3^8,$AC11:$IV11))

とすることも可能です

QExcel 一番右のセルを参照する

Excelで、A1からZ1のセルの内で一番右の入力してあるセルの数字を参照したい場合はどうしたらいいのでしょうか。
例えば、A1,B1,C2,D1,E1にそれぞれ、5, (未入力), 10,7,(未入力)とかの場合は、入力されている中で一番右側にあるD1にある7がその答えになります。

Aベストアンサー

すいません、補足です。
=HLOOKUP(10,A1:Z1,1,1)
の最初のパラメーター"10"は入力される最大値より大きい数字にして下さい。

Q【エクセル】範囲内の空白ではない一番下のセル

またよろしくお願いします。
2段階にわけて質問します。

【質問1】
範囲A1:A10の空白ではない一番下のセルの値を得たい

【質問2】
たとえば質問1でA8が該当セルだった場合、範囲B1:B8の空白ではない一番下のセルの値を得たい。

A列の状態によってB列の範囲を変えて選び出すのが難しそうです。
よろしくおねがいします。

Aベストアンサー

こんにちは~

A1:B10 に入ってるのは数値ですか、それとも文字列?
それによって数式が変わりますよ。

> 範囲A1:A10の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,A1:A10),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(A1:A10)+1,A1:A10),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(A1:A10,MATCH("*",A1:A10,-1)),"")


> たとえば質問1でA8が該当セルだった場合、
> 範囲B1:B8の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,INDIRECT("B1:B"&MATCH(MAX(A1:A10)+1,A1:A10,1))),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(B1:B10)+1,INDIRECT("B1:B"&MATCH(MAX(A1:A10)+1,A1:A10,1))),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(B1:B10,MATCH("*",INDIRECT("B1:B"&MATCH("*",A1:A10,-1)),-1)),"")

※B列の該当範囲に値がない場合のエラー処理はしていません。
※解決した質問は締め切ってくださいね。

こんにちは~

A1:B10 に入ってるのは数値ですか、それとも文字列?
それによって数式が変わりますよ。

> 範囲A1:A10の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,A1:A10),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(A1:A10)+1,A1:A10),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(A1:A10,MATCH("*",A1:A10,-1)),"")


> たとえば質問1でA8が該当セルだった場合、
> 範囲B1:B8の空白ではない一番下のセルの値を得たい

★数値な...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング