EXCELL膨大な行に数式を入れたい(コピーしたい)

エクセルで747670行に数式をコピー

エクセルで74万行ほどの行に数式を入れる作業が出来た。

一般的には数式を入れ、コピーアンドドラッグかと思うが、74万行となるとそうもいかない。

Webで検索しようとするが、言葉が思いつかない。

当初は「エクセルで数式をコピー」なんて検索をしたがなかなか見つからない。

結局「エクセルで数式を一瞬にコピー」として指導サイトが見つかった。

方法は数式を入力したセルを選択し、2行にコピーし

右下角の四角をダブルクリックするだけ。

f:id:greengreengrass:20210411095633p:plain



f:id:greengreengrass:20210410185738p:plain

エクセルは昔と違って進化している。

付近の行を検索し、入力されている行を認識、その行まで数式をコピーしてくれる。

74万行を10秒ほど、本当に一瞬なので感動だ。

 

探索の流儀

REMEMBER3.11

確定申告Web作成のテクニック

確定申告複数作成

確定申告の時期だ。

昨年の申告で誤りが見つかった。配偶者が居るのに配偶者控除申告をしていなかった。???

そこで修正申告。

昨年からWeb申告(作成のみ。提出は紙)しているので、ダウンロード資料が残っていた。

(昨年の.dataファイルは偶然今年度修正しようとするデータだった)

そこでこの資料を将来有効に利用するため保存法を考えた。

念のためもう一度。

昨年の申告はWeb申告(ブラウザー上で作成のみ。提出は紙)で行った。

Web申告書作成画面では右下に下図のようなアイコンが出ている。

f:id:greengreengrass:20210312154216p:plain

この「入力データの一時保存」をクリックすると以下の画面になる。

f:id:greengreengrass:20210312154723p:plain

この画面ではまずA「入力中のデータをダウンロードする」をクリック

するとダウンロードフォルダーに拡張子「.data」のファイルが作成される。

このデータは申告者が変わってもダウンロードするたび上書きされるので大変厄介だ。

そこでテクニックを思いついた。

 

確定申告データ保存の注意

上図案内のようにこれを任意のフォルダーに移動するのだが、その時に覚えやすい名前に変えてやる。

ただし拡張子「.data」は絶対に変えてはいけない。次にWebで読めなくなる。

私の場合は夫と妻の名前を付加し保存している。

デフォルトのファイル名が令和1年なら「r1」、令和2年なら「r2」で始まるのでこれを残すと年度は間違えない。

後で気づいたが、専用のフォルダーを作りそこに保存するほうがもっと簡単だ。

f:id:greengreengrass:20210312170349p:plain

なんて具合だ。

 

探索の流儀

REMEMBER3.11

GIS緯度経度について

緯度経度換算

GISでは緯度経度で位置をあらわすがこの表記に10進法と60進法があるらしい。

国土地理院では主に60進法を使っていると聞く。

また60進法での表記も様々であることが分かった。

特に60進法、度分秒の表記も35度01分43秒もあれば、35°1′43.2″、さらに

35度1分43.2秒なんてものもある。

これらをQGISで表現する場合10進法への変換が必要だ。

調べると、35度01分43秒のような表記がA1セルにある場合、

計算式は以下になる。

最初に度単位の抜き取りは左から2桁取り出し =VALUE(LEFT(A1,2)) 

となる。

次に分単位の抜き取りは、左から4桁目から2桁取り出す =VALUE(Mid(A1,4,2)) 

となり、

次に秒単位の抜き取りは左から7桁目から2桁取り出す =VALUE(Mid(A1,7,2)) 

となる。

そして次に10進法への読み替えが必要。

度単位はそのまま、上記だと「35」 A

分単位は60進法だから、01÷60 となる。 B

秒は、43÷60÷60(43÷3600)となる。 C

最後にとすれば完成

(最初は=A & B & Cなんて式を組んでいたがこれは間違い)

緯度経度換算の落とし穴

今回入手したデータは以下のような表記だった。

35.01430 135.47086

そして但し書きに「60進法で記載」とあった。

60進法なのに連続数字となっていた。

上記の式によって以下と計算した。

度35はそのまま 

分01は 01/60 で「0.02」 

秒430は 430/3600 で「0.1194」 

D+E+Fで「35.1394」となった。

すると地図上の位置は下図のに20mほどずれて表示された。

このポイントは知っていたので間違いだと分かった。

f:id:greengreengrass:20210310110231p:plain

が正しい位置。

そこで正しい位置を求め試行錯誤した。

結果は上記式の430/3600」が間違い。

ここは秒の数字が3桁なので3桁以降を小数点にする (430/3600)/10 が正しい。

再計算すると上図の位置に無事表示された。


国土地理院による間違った表示例

緯度、経度の悪い例 37度8分56.1234秒の場合 
  • 370856         ← 秒に小数点がない
  • 37 08 56.12340     ← 度・分・秒の区切りが半角空白となっている
  • 37:08:56.12340     ← 度・分・秒の区切りがコロンとなっている
  • 37-08-56.12340     ← 度・分・秒の区切りがハイフンとなっている
  • 37.085612340      ← 度と分の間に小数点が入っている
  • 37 856.12340      ← 分が1桁になっている
  • 37856.12340 ← 数字が全角となっている

 

探索の流儀

REMEMBER3.11

入力されたセルの最下行を求める

空のセルがある計算

数値的データを日計で取っているような場合、空ではなく入力されたセルの最下行との比較を摂りたい、というときがある。

例えば次の表のような日計数値があるとする。

数値データをとっている日、とっていない日がある。

数値データのある直近の日との差を求めたい、というような場合だ。

2020年12月7日の数値と、直近でデータをとっている日「12月4日」との差を求めたい。

このような時にはIndex関数とMatch関数をセットで使うと求められる

下記表のC2セルには

=IF(B2="","",B2-INDEX(B$1:B1,MATCH(MAX(B$1:B1)+1,B$1:B1,1)))

と入力している。

=IF
(B2=””,””,

《B2セルに値があれば》
B2-
INDEX(B$1:B1,

《B列のB1からB1までの中で》
MATCH(MAX(B$1:B1)+1,

《入力された最下行と比較し》
B$1:B1,1)))

《差をだす》

なんて意味になるらしい。

これをドラッグしコピーすれば下表になる。 

日付 B列 C列
2020/12/1 625  
2020/12/2 743 118
2020/12/3 813 70
2020/12/4 815 2
2020/12/5    
2020/12/6    
2020/12/7 828 13
2020/12/8 919 91
2020/12/9 938 19
2020/12/10 840 -98
2020/12/11 832 -8
2020/12/14 811 -21
2020/12/15 778 -33
2020/12/16 843 65
2020/12/17 889 46
2020/12/18 938 49

 

Match関数 Match関数は
  • 検査範囲を昇順に並べ替えをせず
  • [検査値]を[検査範囲]内の最大値の+1
としておくと、今回の式のように最下行に入力された数値を返す。

 

探索の流儀

REMEMBER3.11

起動が遅くなった

Windows重要な更新

2020年12月にWindowsの重要な更新が行われた。

なんでも2020年のコロナ禍におけるリモートワークの増加に伴って、Windowsの更新も大幅に変わったようだ。

f:id:greengreengrass:20210215151355p:plain

その余波で、PC起動が遅くなった。

いままでストレスなく多分30秒くらいで立ちあがっていたPC、Win8.1からWin10へのバージョンアップ版、がこの更新で1分以上、(時には永遠に)待つことになった。

この8.1から10へのアップデート版ではWin8.1の更新後に、Win10の更新が続くようで、なお時間がかかるとのこと。

変則な改善方法で、「GUIブートなし」を選択する

という紹介があったので、実行してみた。

f:id:greengreengrass:20210215151414p:plain

しかし「GUIブートなし」に設定しても、実感はそう変わらなかったので取りやめ(チェックを外した)た。

するとどうだろうその流れのあと、起動時間が少し改善したように思う。

まあ気のせいかもしれないが・・

Webではいろいろな改善策が紹介されているので、なんらかの方法をとれば有効になるかもしれない。

 

 

探索の流儀

REMEMBER3.11

USB3.0干渉問題

外付けHDDのwifi干渉

ELECOMのワイヤレスマウス M-IR07DRを使っている。

ワイヤレスで大変重宝しているが、ここのところマウスの挙動がおかしくなった。

とくにソフトを多く立ち上げると動きや反応が遅い。

電池容量の低下かとも思ったが、それなら立ち上げるソフトの数に関係なく遅くなると思う。

ELECOMサポートに電話してみた。

「外付けHDDとの距離を離してください」との助言があったので、今まで20cm程度だったものを、50cm程度に離してみると見事に改善された。

どうやらUSB3.0問題とでもいうような現象らしい。

M-IR07DRはUSB3.0にも対応しているので、速くなるならと「USB3.0」のポートと繋いでいる。

しかし上記外付けHDDの本体(ならびにケーブル)と近くなると相互に干渉するようだ。

以下に詳しい。

USB 3.0と2.4GHz帯無線に干渉問題、無線LANや外付けHDDの速度が遅くなるおそれも | Buzzap!

 

「イヴァンよお前にやる花はない」プラハの花屋

REMEMBER3.11