• ベストアンサー

座標と座標値を表にする

教えてください。 下に示すような値があって、 x ---y---z 11---4---6 15--12---8 12--14---3 15--14---6 ・ ・ ・ ・ これを、下の様な表形式?行列形式?にしたいと思っています。 --11--15--12・・・・・・・・・x -4-6-------- 12-----8---- 14-----6---3 ・ ・ ・ ・ y その後でさらに加工したいので、 出来ればエクセルだと助かります。 簡単な質問かもしれませんが、 お力を貸して下さい。 申し訳ございませんがよろしくお願いいたします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に、元データである上の表の中で、「x」と入力されているセルがA1セルであるものとします。  又、下の表において、yの値を並べて表示している列がE列であり、xの値を並べて表示している行が1行目であるものとします。(要するに、下の表の左上の隅にあたるセルがE1セルであるものとします)  まず、E2セルに次の関数を入力して下さい。 =IF(INDEX($B:$B,ROW($B$1)+ROWS($2:2))="","",INDEX($B:$B,ROW($B$1)+ROWS($2:2)))  次に、E2セルをコピーして、E3以下に貼り付けて下さい。  次に、F1セルに次の関数を入力して下さい。 =IF(INDEX($A:$A,ROW($A$1)+COLUMNS($F:F))="","",INDEX($A:$A,ROW($A$1)+COLUMNS($F:F)))  次に、F1セルをコピーして、表内の1行目においてF1よりも右側にある全てのセルに貼り付けて下さい。  次に、F2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)=COLUMNS($F:F),IF(INDEX($C:$C,ROW($C$1)+ROWS($2:2))="","",INDEX($C:$C,ROW($C$1)+ROWS($2:2))),"")  次に、F2セルをコピーして、表内において、E列よりも右側の列の2行目以下に位置しているセル範囲に貼り付けて下さい。  以上です。

kamehiko0721
質問者

お礼

ありがとうございます。 kagakusukiさんのおかげで、表作成出来ました。 こういう場でなじみがないのですが、 新たに疑問が発生しました。 再度、質問を上げさせて頂きますので、 お力を貸して下さると助かります。 この度は本当にありがとうございました。

その他の回答 (1)

  • kamikami30
  • ベストアンサー率24% (812/3335)
回答No.1

難しいです。 Excelは表計算のソフトなので、Excel自体が表のようにセルが並んでいます。 A1のセルにx B1のセルにy C1のセルにz と項目名を作り、各行にそれぞれの座標を入れると表が完成します。 表がそもそも何のことだかわからなかったり、単語の意味がわからないなら調べてから使ってください。 とりあえず、上記の方法で表は出来ます。 何がしたいのかをご説明下さい。

kamehiko0721
質問者

補足

説明不足で申し訳ございません。 xはx座標、yはy座標、zは計測値です。 それが最初の図のように、 xはx列に、yはy列に、zはz列に並んでいる状態です。 それを二番目の図のように、 xを横に並べyを縦に並べ、それぞれxとyに対応するzを入れたいと思っております。 kamikami30さんがおっしゃったような方法で、 地道に数値を入れていこうと思ったのですが、計測値が1000個近くあり、 関数かVBA、フリーソフトを使わないときついかなと思っております。 vlookupやindex、match関数では上手くいかなかったので皆様の知恵を拝借できないかと思い、 こちらに投稿させていただきました。 説明べたですみません。何か良い案があれば力を貸して下さると助かります。

関連するQ&A

  • エクセルの表から座標セルの抽出(関数で)

    エクセルの表から関数で条件に合う座標セルの値を抽出したいのです。 例 空白|い|ろ|は|に| X   |2|6|9|7| Y   |8|4|1|5| Z   |A|3|B|0| このような5列4行の表があったとき A1セルに「ろ」、A2セルに「Y」の入力でA3セルに「4」 A1セルに「は」、A2セルに「Z」の入力でA3セルに「B」を出したいです。 申し訳ありませんが教えていただけると助かります。よろしくお願いします。

  • 座標変換

    3次元(x,y,z)物体の回転でよくx軸、y軸、z軸で回転がありますが、xy平面との角度φを回転させたいときはどうすればいいでしょうか? xy平面との角度をφ回転させた後の座標(X,Y,Z)はどうなるのでしょうか? また X     x Y = T・y Z     z このような行列Tが存在するのでしょうか?

  • 座標と座標値を表にする その2

    何度も申し訳ないのですが、教えて下さい。 今、表1の様なxyzの座標があります。 これを表5の様に変換したいと考えております。 表1を直接表5に、もしくは表1を表3に変換することはできるのでしょうか? (表3に変換したら後は力技で被りを消去かなぁと思っております) ちなみに、 先程、皆様のお力で、表1を表2に変換することは出来ました。 大変申し訳ございませんが、再びお力を貸して下さい。 よろしくお願いいたします。

  • 3次元の座標変換と角度について。

    3次元のシミュレーションの勉強をしています。 3次元の座標変換で x,y,z:変換前の座標; x',y',z':変換後の座標; θ:回転する角度; lx,ly,lz:平行移動量; としたとき、 X軸に関する回転              |1 0   0    0|              |0 cosθ sinθ 0| [x' y' z' 1] = [x y z 1]|0 -sinθ cosθ0|              |0 0   0   1| Y軸に関する回転              |cosθ0 -sinθ0|              |0   1 0   0| [x' y' z' 1] = [x y z 1]|sinθ0 cosθ 0|              |0   0 0   1| Z軸に関する回転              |cosθ sinθ 0 0|              |-sinθcosθ0 0| [x' y' z' 1] = [x y z 1]|0   0   1 0|              |0   0   0 1| 平行移動              |1 0 0 0|              |0 1 0 0| [x' y' z' 1] = [x y z 1]|0 0 1 0|              |lx ly lz 1| 物体の姿勢を表現するときは [物体の姿勢の変換行列] = [Z軸の回転行列][X軸の回転行列][Y軸の回転行列][平行移動]  |XX XY XZ 0| XX,XY,XZ・・・X軸の単位ベクトルを変換した場合のベクトル  |YX YY YZ 0| YX,YY,YZ・・・Y軸の単位ベクトルを変換した場合のベクトル = |ZX ZY ZZ 0| ZX,ZY,ZZ・・・Z軸の単位ベクトルを変換した場合のベクトル  |LX LY LZ 1| LX,LY,LZ・・・平行移動量ベクトル というのは分かるのですが、 X軸、Y軸、Z軸の単位ベクトルを変換した後のベクトルから X軸、Y軸、Z軸にそれぞれ何度ずつ回転させたかを求めるにはどのようにすればよいのでしょうか? つまり、X軸に対して30度、Y軸に対して45度、Z軸に対して60度回転させた後の |XX XY XZ 0| |YX YY YZ 0| |ZX ZY ZZ 0| |LX LY LZ 1| の値からX軸に対して30度、Y軸に対して45度、Z軸に対して60度回転している事を導きたいのです。 分かる方教えてください。 お願いします。 (質問に関して、 http://www.ceres.dti.ne.jp/~ykuroda/oyaj/bone/basic3d.html を参考にさせていただきました。)

  • カスタムマクロの次座標の読み込み

    カスタムマクロを使用して加工をしたいのですが、G66で呼び出し中のマクロで次座標の読み込みは出来るのでしょうか? 具体的な加工としてはエンドミルで横引き加工をしますが、 加工箇所が座標データしかなく、また座標数も膨大なためマクロで処理出来る方法を思案中です。 Y座標が同一点では連続加工し、Y座標変化点でZを逃がしたいです。 加工順  G00X0Y0 G01Z-1.F50 X6. G00Z2. X0.Y0. G01Z-1.F50 X6. ・ ・ ・ G66P100OABCL0 X0Y0 X2Y0 X4Y0 X6Y0 X0Y-2 X2Y-2 X4Y-2 X6Y-2 G67 とあり、次座標との比較で加工経路を決定させたいのですが可能でしょうか? また、他にスムーズな方法はあるのでしょうか?

  • NCデータでの座標定義について

    NCプログラムの初心者です。NCプログラムに詳しい方どうか教えてください。 下の方にNCデータのソースの一例を記入しております。 その中で、パートAを行1~5、パートBを行6~25と定義します。 ●パートAは、加工原点からみて機械原点の距離は(+100,+100)。加工原点を(0,0)と定義したい。 ●パートBは、加工原点を(?X,?Y)と定義したい。 (パートAとは相対的に(+?X,+?Y)ずらした位置で加工したい。) 上記のようにしたいのですが、パートBの冒頭でG91G00?X?Yとしても、その後、G90の絶対座標系で動いているので、 だめかな、と思います。それともG92で定義し直すのでしょうか。。 パートB部分全体をパートA部分で定義した加工原点からある値をずらした加工原点で加工するには、 ひとつのNCデータ内でどのように定義すればよろしいのでしょうか? #ちなみに座標定義は下記です。 ・水平方向:右→左をプラスX方向 ・垂直方向:下→上をプラスY方向 1 O1000 :メインプログラムO1000 2 G92X100.Y100.Z0. 3 G90G00Z10. 4 M98P4003 :サブプロO4003呼び出し 5 G90G00Z0. 6 G54G90 :ワーク座標系G54(現在オフセット値は0,0) 7 G17G40G00X140.Y42.S18M13 8 M11 9 G01Z-40.F6000 10 G64G43H27Z-63.F2000 11 G41D25X130. 12 X50.F3000 13 G42X80. 14 Y70. 15 G41Y42. 16 X-993. 17 Y22. 18 X-1360.F3000 19 G40X-1325.Y-10.F6000 20 M98P5555 :サブプロO5555呼び出し 21 G91G01G49Z63.F5000M92 22 M95 23 G91G28X0Y0M07 24 M31 25 M30 お手数ですが宜しくお願い申し上げます。

  • 座標

    xy平面、xyz空間で座標を書くとき (x、y)、(x、y、z)と普通は書きます。 これを縦で書いてはいけないでしょうか?(2行1列、3行1列の行列のように) 「一般に横で書かれているのだから横に書きなさい」 とおっしゃられるかたもいると思うのですが、 座標を使って内積を作るときなど、やりやすいのです。

  • 座標値指令について

    X Y Z座標値入力で、通常 X0.128 Y10.256 等入力しますが、座標軸の後にスペースがはいると何か違ったことはあるのでしょうか。X 0.128 Y 10.256 のような感じです。 パソコンで作成したプログラムをNC機に読み込ませて加工しており、 このようにスペースが含まれたりする場合があります。 見た目は同じようにプログラムは流れているようなのですが、 スペースも桁数として読まれてしまうようなことがあるのでしょうか? 知っているかたがおられたら教えてください。

  • 3次元での座標の移動

    現在の座標値S(x0,y0,z0)と目標値G(x1,y1,z1)がわかっているときに、 SをGに移動させるのは、どのような行列になるのでしょうか? つまりS,Gがわかっていて以下の式の行列Aをもとめたいということです。 G=A*S 解かる方教えてください。お願いします。

  • MATLABを使った三次元座標の回転を求めたい

    二つの三次元座標(X,Y,Z)と(X',Y',Z')の回転および移動距離を求めたいのですが、どのようにして求めることができるのでしょうか?色々行列の本を読んでみたのですが、文系出身だったので内容がきちんと理解できていません。ご指導よろしくお願いします。

専門家に質問してみよう