親子におすすめの新型プラネタリウムとは?

エクセルで左から始めて、最初に「0」ゼロより大きい値になる(セルの位置の)値を表示したいです
関数でお願いできればと思います。

a,b,c,d,e,f ,g,h,i, j
---------------
0,0,0,1,0,0,0,0,0,0 - この場合、D1の"1"を表示させたい
0,1,2,1,3,4,1,0,0,1 - この場合、B2の"1"を表示させたい
0,0,0,0,1,2,4,5,1,2 - この場合、E3の"1"を表示させたい

少々急いでおります。何卒、よろしくお願いいたします。

補足
エクセル2010です 。

A 回答 (2件)

以下のような関数で最初の0より大きな数字を表示できます。



=INDEX(A1:J1,MATCH(1,INDEX((A1:J1>0)*1,),0))

エラー表示をしたくないならIFERROR関数などを使用して適宜数式を修正してください。
    • good
    • 0
この回答へのお礼

出来ました!!迅速なご回答、本当に、本当にありがとうございました!!!!
またの機会も何卒よろしくお願い申し上げます!

お礼日時:2013/03/19 00:35

こんばんは!



質問では偶然かどうかわかりませんが、
「0」の次は必ず「1」となっていますよね?

本来の目的は「0」の次の列の値を求めたい!という解釈での一例です。

データは1行目からあるとします。
表示したいセルに

=INDEX(A1:J1,,MIN(IF(A1:J1>0,COLUMN(A1:J1))))

これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定!
この画面からコピー&ペーストする場合は表示したいセルに貼り付け後、数式バー内で一度クリック!
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

これをオートフィルで下へコピーしてみてください。
尚、エラー処理はしていません。

※ A列に「0」より大きな値がある場合はA列のデータが表示されます。m(_ _)m
    • good
    • 0
この回答へのお礼

誠にありがとうございました。大変参考になりました。

またの機会もよろしくお願いいたします!!!!

お礼日時:2013/03/19 00:31

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

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

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

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

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エクセルで、指定の値よりも大きい数字を最初に越えたときの列番号を返すには?

テストの点数で、初めて40点を下回ったときの日付と、初めて80点を越えた時の日付を返すような関数を組みたいのですが、どうやればいいか分かりません。MATCH関数を使うような気がするのですが、そこから先が分かりません。

例)
1月1日  43点
1月2日  83点
1月3日  81点
1月4日  26点
・・・
この例であれば、80点を初めて越えるのは「1月2日」、
初めて40点を下回るのは「1月4日」という形で答えを返したいのですが、どなたかお知恵を貸してください。よろしくお願いします。

Aベストアンサー

◆こんな方法はいかがでしょう
>80点を初めて越えるのは「1月2日」
D2=MIN(INDEX((B2:B10<=80)*10^5+A2:A10,))

>初めて40点を下回るのは「1月4日」
D5=MIN(INDEX(((B2:B10>=40)+(A2:A10=""))*10^5+A2:A10,))

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

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

Aベストアンサー

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

Qエクセルで指定した数値より大きい数値のみを表示したいのです。たとへば1

エクセルで指定した数値より大きい数値のみを表示したいのです。たとへば1日の拘束時間を計算して、9時間以上のみを表示。9時間以下の場合は表示されないようにしたいのですが、宜しくお願いします。

Aベストアンサー

一番分かりやすいと思われるのは、
時間を数値に変換せずセルの書式を時間にしておきます。

A1のセルに9:00(指定した数値)
B1のセルに実際の1日の拘束時間

を入力しC1に以下の時間を入れます。
=IF(A1<B1,B1,"")

C1にはB1がA1よりも大きい場合のみ表示されます

Q表から0以外の数値を取り出し羅列したい

何から考えていいのか分かりません・・。
Excel200で下記のような表があります。

ID  顧客名 サービス1 サービス2 サービス3・・・・
─────────────────────────
**** AAA     0     0     0
**** BBB     0     0    11
**** CCC     1    16     0
**** DDD     0     0     3
 ・  ・      ・     ・     ・
 ・  ・      ・     ・     ・
 ・  ・      ・     ・     ・

この表からデータが0でないものをピックアップし、
次のような一覧を作成したいのです


顧客名 サービス名 件数
─────────────
BBB サービス3 11
CCC サービス1  1
CCC サービス2 16
DDD サービス3  3

こういったことは可能なのでしょうか?
過去のものも見てみたのですが、うまく合致するものを探せず、
Excelの関数のヘルプを見ても、よくわからず、困ってしまいました。

関数は多少使ったことがありますが、
マクロは使ったことがありません。
ご指導いただける方がいらっしゃいましたらどうぞ宜しくお願い致します。

何から考えていいのか分かりません・・。
Excel200で下記のような表があります。

ID  顧客名 サービス1 サービス2 サービス3・・・・
─────────────────────────
**** AAA     0     0     0
**** BBB     0     0    11
**** CCC     1    16     0
**** DDD     0     0     3
 ・  ・      ・     ・     ・
 ・  ・      ・     ・     ・
 ・  ・ ...続きを読む

Aベストアンサー

関数でもできそうですが、マクロのほうがはるかに簡単にできます。


Sheet1が下のようになっており、

    A   B    C     D     E   ・・・
1  ID  顧客名 サービス1 サービス2 サービス3 ・・・
2 **** AAA   0     0     0
3 **** BBB   0     0    11
4 **** CCC   1    16     0
5 **** DDD   0     0     3   ・・・

これをSheet2に次のように集計してみます。(2行目から集計)

    A   B    C
1 顧客名 サービス名 件数
2 BBB サービス3 11
3 CCC サービス1  1
4 CCC サービス2 16
5 DDD サービス3  3


ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。
プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロをコピーして貼り付けます。

シートに戻り、ツール→マクロ→マクロでこのマクロ(ichiran)を指定して実行します。

ここからコピーします

Sub ichiran()
  Dim rw As Long '調べる行
  Dim col As Integer '調べる列
  Dim outRw As Long '書き出す行

  outRw = 2
  With Worksheets("Sheet2")
    .Cells.Clear
    .Range("A1:C1") = Array("ID", "サービス名", "件数")
    For rw = 2 To Range("B65536").End(xlUp).Row
      For col = 3 To Range("IV" & rw).End(xlToLeft).Column
        If Cells(rw, col).Value > 0 Then
          .Cells(outRw, 1) = Cells(rw, 2)
          .Cells(outRw, 2) = Cells(1, col)
          .Cells(outRw, 3) = Cells(rw, col).Value
          outRw = outRw + 1
        End If
      Next
    Next
  End With
End Sub

関数でもできそうですが、マクロのほうがはるかに簡単にできます。


Sheet1が下のようになっており、

    A   B    C     D     E   ・・・
1  ID  顧客名 サービス1 サービス2 サービス3 ・・・
2 **** AAA   0     0     0
3 **** BBB   0     0    11
4 **** CCC   1    16     0
5 **** DDD   0     0     3   ・・・

これをSheet2...続きを読む

Qエクセル 0以上の金額だけ集計する場合

一列(縦)の0以上の金額だけ集計(0以下、マイナスの数字は無視)する方法、数式があれば教えてください。宜しくお願いします。

Aベストアンサー

=SUMIF(A:A,">0")
だけでいいです。

Q特定の列から一定以上、または未満の値を抽出したいです。

特定の列から一定以上、または未満の値を抽出したいです。
たとえばA列だけに絞って、10以上の数字がないかどうか等。
A~D列までに10以上の数字がないか、というのもできれば。

Aベストアンサー

>たとえばA列だけに絞って、10以上の数字がないかどうか等。
■オートフィルタ
A列を選択して「データ」「フィルタ」「オートフィルタ」を実行
A1で▼をクリックしてオプションから「10」「以上」で抽出
※10未満のセルは非表示になります。

■条件付き書式
A列を選択して「書式」「条件付き書式」を実行
「セルの値が」「次の値以上」「10」で書式ボタンでパターンの色を選択
※色の付いたセルが10以上の数値のあるセルになります。

>A~D列までに10以上の数字がないか、というのもできれば。
■オートフィルタ
E列にて、下記の数式を設定
E2=COUNTIF($A2:$D2,">=10")
E列を選択して「データ」「フィルタ」「オートフィルタ」を実行
E1で▼をクリックしてオプションから「1」「以上」で抽出
※10以上のセルのない行は非表示になります。

■条件付き書式
A:D列を選択して「書式」「条件付き書式」を実行
「セルの値が」「次の値以上」「10」で書式ボタンでパターンの色を選択
※色の付いたセルが10以上の数値のあるセルになります。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q【エクセル】0以外が入力されていれば1を立てる計算式について

標記の件、ご存知の方がおられたら教えて下さい。

例えば・・・
[A1] 0 [B1] 0 [C1] 1 [D1] 5
となっていた場合に
[A2] 0 [B2] 0 [C2] 1 [D2] 1
となるような計算式はありませんでしょうか?

是非、お知恵をお貸し頂ければと思います。
宜しくお願い致します。

Aベストアンサー

>0以外が入力されていれば1を立てる
日本語をそのまま式にすると
=IF(A1="","",IF(A1=0,0,1)) 右へコピィします。
少し変わった方法(1行目が整数、0.1とかがない場合)
=IF(A1="","",MIN(1,A1)) 右へコピィとか
1行目の値と数値 1で小さいほう。

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&Aランキング