• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル関数について)

エクセル関数:各地点の水温を川底基準にし、0m、5m、10m間隔で抜き出す方法

このQ&Aのポイント
  • A地点、B地点、C地点の川の水深1メートルから10メートルまでの各水温を計測しました。これを川底を基準(0m)にし、0m、5m、10mの各地点の水温を別シートに返したいと考えています。
  • 計測機のエラーにより各地点の #N/A エラー表示を一括で削除する方法についても教えていただきたいです。
  • 以上、どなたか教えて頂けますでしょうか。よろしくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1630)
回答No.5

0mが無いので不可能です。 0mのある画像の様な表とします。 A2: =IFERROR((INDEX(Sheet1!A:A,ROW()*5-8)&"")+0,"") 右下へコピペ。 グラフを作るなら、#NA は残しておいた方がいいです。グラフで""は0扱いになります。

spick
質問者

お礼

ありがとうございます。他のみなさんもありがとうございます。

その他の回答 (4)

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

#3です。追加で、 VBAでやる場合に、必要になりそうな、部品を書いてみました。 VBAでやる気はなく、無駄になる惧れが多いが。参考に。 ==== 物理的に行の上下順序逆転。セルの値は関せずに。 Sub test02() lr = Range("D10000").End(xlUp).Row MsgBox lr k = 1 'データ最初行の有様により、 1 を 2とかに変える 'ーーーデータ最初行の有様により、To 1 を To 2とかに変える For i = lr To 1 Step -1 Cells(k, "F") = Cells(i, "D") 'F冽は作業列 k = k + 1 Next i '--元の位置に戻す Range("D1:D" & lr).Copy Range("F1:F" & lr) End Sub ーーー セルの値が、#N/Aのセルを見つける方法。 このセルを、空白にするのは修正が必要だが、簡単。 O列に=VLOOKUP(C1,$M$1:$N$5,2,FALSE)のような関数で#N/Aの行を作った。そののち下記実行。 Sub test03() For Each cl In Range("O1:O10") If cl.Text = "#N/A" Then 'Textを使う Cells(cl.Row, "p") = cl.address & "#N/A エラー" End If Next End Sub === 既回答で、VLOOKUP関数で、#N/A のエラーが出ているという見立てなのだが、 小生にはそう考える理屈が判らない。本来質問者が、質問にまず,セルに式を入れているのか、YESなら、どんな式か、書いておくべきなんだ。 ーー 並べ替えなども、エククセル関数でできないことはない。しかし関数でやるのは愚だと思う。

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

小生など、こういう実験や記録・処理は経験がない。しかし、質問の書き方が雑だと思う。 そり方法も、やり方を考えて、まず文章で表現できなくては、始まらない。丸投げ結果の回答だけを頂くのは情けない。 ー こういう処理は、エクセルVBAでも使えるようになるべきだと思う。 今は教育界も、挙げてプログラム習得を進めようとしているのでは。 これはプログラム言語習得だけでなく、プログラム思考の習得も目指しているはずで、 理詰めで考え、理詰めで表現できるようになることがまず必要と思う。」 しっかりがんばってね。 === 現状行ったことは、 ・複数地点で水温を測り、(エクセル)表を作る。沿岸からの距離は問題にしない? 地点はA,B,C・・(列に対応) ・複数地点で、深さごとの、水温を測り、表を作る。当然、測定水深<=水底 ・水底以浅で#N/Aが出ているのはなぜ?.これが考え方を乱す要因になりそう。 ・単純に、#N/Aが出ている、使ったエクセル関数はどんなものか。そもそも関数結果ではなく入力なのか? ・別シートに修正版データを作るのが希望らしいね。それは望ましいと思う。 ーーー 削除するというが、 (1)セルの値を空白にする。 (2)セルの表示形式を空白にする。条件付き書式などで。 (3)その他。文字を白色にするなど セルの削除は表の形式を乱すのでダメだろう。 ーー 水底よりの式に直すには水底の深さのデータが要るのではないか。 無しでやるなら、どういう式で(みなしにしろ)算出するのか。変換による1mの誤差が出るのでは。 本当はデータの測定しなおしが必要では。 まず水底深を図り、そこからー1mを計算し、垂らすひもがー1,ー2、・・mのところが水面に 来るようにして測る。 ーー エクセルVBAでは Sub test01() Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") For Each cl In sh1.Range("A1:C4") MsgBox cl.Row & "-" & cl.Column & " = " & cl.Value Next End Sub でセル範囲のセルの情報が捉えられる。このMsgBox のところへ適当に処理して、 この行や列の情報で、水底からの距離(疑似)の表に組み替えられるかどうか? 中身=水温でなくセル位置で逆転順に並べられるか? やってみたら。

回答No.2

#N/Aを表示させないようにするには、一般的にはIFERROR関数を使用します。「#N/A IFERROR」等の語句で検索をかけると使用法が解説されているWebが山ほど見つかりますので、それを参考にされると良いでしょう。 参考(一例) https://forest.watch.impress.co.jp/docs/serial/exceltips/1121421.html 0/5/10m間隔で抜き出すのはVLOOKUP関数を使用します。 これも「VLOOKUP関数 使い方」等で検索をかけられると用例が山ほど出てきますので、それを参考にされることをお勧めします。 以上、ご参考まで。

spick
質問者

補足

膨大なデータを処理するにあたりこのエラー表示を削除する方法について =IFERROR(VLOOKUP(A5,'AAA'!$A$3:$KL$602,2,FALSE),"") 各列の部分については毎回、列番号を入力しなければならないと思いますがここも操作せずすべての列を一括操作できるんでしょうか。。。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

VLOOKUP関数を使ってみて下さい。

spick
質問者

補足

データベースのシートにあるエラー表示を別シートにではなく、データベースが記載されたシート中で一括削除はできないものなのでしょうか。

関連するQ&A

専門家に質問してみよう