• ベストアンサー

エクセルで・・・風向(方位)のデータ(0~359°)を文字(N、E、S、W等)に変換出来ますか?

使用している風向計では風向が0~359°の数字で 記録されていきます。0°が北、90°が東を表します。 得られたデータはエクセルに貼り付けて加工するつもりです。 A1のセルからA2、A3と縦方向に風向の数値を入れ、 隣のセル(B1~)には文字(N、E、S、W等)として変換したいのですが可能でしょうか。 具体的には Aのセルが「0°~10°」の範囲にあるときは Bのセルに「N」と表示。 Aのセルが「11°~29°」の範囲にあるときは Bのセルに「NNE」と表示。 Aのセルが「30°~60°」の範囲にあるときは Bのセルに「NE」と表示。 Aのセルが「61°~79°」の範囲にあるときは Bのセルに「ENE」と表示。 Aのセルが「80°~100°」の範囲にあるときは Bのセルに「E」と表示。 Aのセルが「101°~119°」の範囲にあるときは Bのセルに「ESE」と表示。 Aのセルが「120°~150°」の範囲にあるときは Bのセルに「SE」と表示。 Aのセルが「151°~169°」の範囲にあるときは Bのセルに「SSE」と表示。 Aのセルが「170°~190°」の範囲にあるときは Bのセルに「S」と表示。 Aのセルが「191°~209°」の範囲にあるときは Bのセルに「SSW」と表示。 Aのセルが「210°~240°」の範囲にあるときは Bのセルに「SW」と表示。 Aのセルが「241°~259°」の範囲にあるときは Bのセルに「WSW」と表示。 Aのセルが「260°~280°」の範囲にあるときは Bのセルに「W」と表示。 Aのセルが「281°~299°」の範囲にあるときは Bのセルに「WNW」と表示。 Aのセルが「300°~330°」の範囲にあるときは Bのセルに「NW」と表示。 Aのセルが「331°~349°」の範囲にあるときは Bのセルに「NNW」と表示。 Aのセルが「350°~359°」の範囲にあるときは Bのセルに「N」と表示。 エクセルで簡単に出来ますでしょうか? ご教授願います。

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

  • ベストアンサー
  • puni2
  • ベストアンサー率57% (1002/1731)
回答No.3

本題に入る前に,16方位が均等に分割されていないのは,何か理由があるのでしょうか? 以下では,とりあえず均等に分割する(0°~11.25°はN,11.25°~33.75°はNNE,など)ものとして説明します。 まず,D列とE列を利用して,角度と16方位との変換表を作ります。(もちろん,A,Bと重なっていなければ,別にDとEである必要はありません。) セルD1に0と入力。 D2に11.25,D3に33.75と入力します。 次に,D2とD3の両セルを選択し,右下の+印にカーソルをあわせると,+印が細くなるので,そのまま下に向かってドラッグします。 数字が等間隔で(22.5ずつ)増えていくので,セルD17に348.75が入ったところで手を離します。 セルD18には360と入れます。 次に,E列には上から順に方位を入れます。E1がN,E2がNNE…となります。 E17(348.75の隣)は再びN。 E18はなくてもよいのですが,もしデータが360度以上になったらわかるように,「error(>360)」とでも入れておきましょうか。 もし,等間隔でなく,ご質問の文中に示された数値がどうしても必要であれば,D列に関しては,上で述べた操作を行う代わりに,各区間の下限の値を入れてください。 つまり,上から0,11,30,61,……,350,360となります。 以上で準備は終わりです。 さて,B列に方位を表示させるには,LOOKUP関数を使いましょう。 セルB1に, =LOOKUP(A1,$D$1:$D$18,$E$1:$E$18) と入れます。 あとは,このセルをB2から下にずーっとコピーしてやればできあがりです。 たとえば,A列に上から,30, 45, 22, 180, 270, 336, 365と入っていたとすると, B列には上から,NNE, NE, NNE, S, W, NNW, error(>360)と表示されます。(均等に分割した場合) もっとスマートな方法もあるかもしれませんが,参考としていただければ幸いです。

shift
質問者

お礼

丁寧な回答感謝します。 早速活用します。 ありがとうございました。

その他の回答 (3)

  • beer55
  • ベストアンサー率33% (7/21)
回答No.4

お晩でーす。"Shiftさん" 質問:エクセルで・・・風向(方位)のデータ(0~359°)を文字(N、E、S、W等)に変換出来ますか?について参考までに回答します。 A列に検索する風向のデータを入力 B列に結果を表示する方法として D列に"shietさん"が示した風向、E列に風向の文字列を入力 (例)D1からD17及びE1からE17は D列 E列 1 0 N 2 11 NNE 3 30 NE 4 61 ENE 5 80 E 6 101 ESE 7 120 SE 8 151 SSE 9 170 S 10 191 SSW 11 210 WSW 12 241 WSW 13 260 W 14 281 WNN 15 300 NW 16 331 NNW 17 350 N と、入力してください。 B1に =VLOOKUP(A1,D$1:E$17,2,TRUE) と入力してみてください。 VLOOKUP関数なのでテーブルは昇順に並び替えておく必要があります。

shift
質問者

お礼

回答ありがとうございました。勉強になりました。 参考にさせていただきます。

  • etosetora
  • ベストアンサー率22% (39/175)
回答No.2

難しく考えないで 角度の列と方位の列を作って ブイルックアップ関数を使えばいいだけ では

shift
質問者

お礼

回答ありがとうございました。 参考にさせていただきます。

  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんばんは 適当な空きセルに以下の表を作成(仮にSheet2) ----Sheet2-----   A B 1  0 N 2 11 NNE 3 30 NE 4 61 ENE 5 80 E 6 101 ESE 7 120 SE 8 151 SSE 9 170 S 10 191 SSW 11 210 SW 12 241 WSW 13 260 W 14 281 WNW 15 300 NW 16 331 NNW 17 350 N ----Sheet1----------   A B 1 値 式 2 ↓ ↓ セルA1に式  =IF(COUNT(A1),LOOKUP(A1,Sheet2!$A$1:$B$17) もし360以上の値もあるなら  =IF(COUNT(A1),LOOKUP(MOD(A1,360),Sheet2!$A$1:$B$17) で試してみて下さい

shift
質問者

お礼

回答ありがとうございました。 活用させていただきます。 ありがとうございました。

関連するQ&A