有村日記

日常感じたこと、気がついたこと、思ったことを記録

jetstar

2024-07-17 07:34:17 | Weblog
チェックインの受付はフライト出発2時間前から30分前までです。

受託手荷物のお手続きはこの間にお済ませください。

出発25分前には搭乗ゲートにお越しください。

出発15分前には搭乗締切となります。


VBAでMATCH関数・DATE関数を使う

2024-05-31 04:39:37 | EXCEL
目的:日付列の中で、ある日(例えば今日)は何行目にあるかを求める。

ワークシートの中では以下のように式を設定する。
=MATCH(TODAY(),A:A,0)

VBAでMATCH関数・DATE関数を使うときの留意事項を記す。
WORKSHEETFUNCTION.MATCH(DATE,RANGE("A:A"),0)では
「実行時エラー'1004' 
WorksheetFunction クラスのMatchプロパティを取得できません。」とエラーになる。

Date関数をCLng関数で処理する必要があるので注意が必要。
WorksheetFunction.Match(CLng(Date), Range("A:A"), 0)



最終行番号・最終列番号を求める関数

2024-05-05 09:21:49 | EXCEL

A列の最終行番号を求める。

=MAX(IFERROR(MATCH(MAX(A:A)+1,A:A,1),0),IFERROR(MATCH("",A:A,-1),0))

注:途中未入力セルを含む[スペース(半角・全角)は入力データとして評価されるので注意]

1行目の最終列番号を求める。

=MAX(IFERROR(MATCH(MAX(1:1)+1,1:1,1),0),IFERROR(MATCH("",1:1,-1),0))

注:途中未入力セルを含む[スペース(半角・全角)は入力データとして評価されるので注意]

下記を参照しました。感謝!


数式を文字列で取得する関数

2024-05-05 08:43:29 | EXCEL
=FORMULATEXT(参照)
参照する数式を文字列として返す機能(数式でない場合、エラーを返す)

この関数の有益な活用方を見出したので記録しておく。
  1. 作業用のワークフォルダに1日から月末までのフォルダーがあり、それぞれの日付フォルダーには同名のエクセルファイルが格納されている。
  2. はじめに一日のファイルで指定範囲をコピーし、一つにまとめるファイルにリンク貼り付けする。一つにまとめるファイルにリンク貼り付けした直後は相対参照になっているためvbaで絶対参照に変換する。(下記注書き)
  3. 一つにまとめるファイルにリンク貼り付けし、絶対参照に変換したのちその範囲をコピーし下の行に貼り付ける。貼り付けたのち日付を次の日付に全変換する。これをすべての日数分繰り返す。
  4. フォルダーの名前は日付形式になっているためセルの計算式を確認すると日付のデータがリンク式に入っていることがわかる。
  5. ここでFORMULATEXT関数を活かして、それぞれの行の日付を取得する。これにより日別の各種数値が統計できるようになる。
追記1:今回初めての試みであったが、1日より31日までの雛形を準備しておく。月が変わった場合リンク式の年月の部分のみを一斉置換することにより作業は大幅に簡略化される。

追記2:日付(文字列)を取得する際に、DATEVALUE関数を使う。
 書式:DATEVALUE(日付文字列)

(注)モノクロの彩り ←ありがとうございます。
https://tack.life/blog/copy-paste-vba-excel-reference/
 Private Sub 相対参照→絶対参照に変換()

With Selection
.Formula = Application.ConvertFormula(Formula:=.Formula, FromReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute)
 End With

 End Sub


稼働日数を求める関数

2024-04-30 07:08:54 | EXCEL
1.土曜日と日曜日、および指定された祝日を除いた期間内の稼働日数を計算

書式: =NETWORKDAYS(開始日, 終了日, [祭日])
開始日: 稼働日を数え始める基準となる日付を指定(必須)。
終了日: 稼働日を求める期間の最終日の日付を指定(必須)。
祭日: 祝日や社内の休業日を指定(省略可能)。省略した場合は土曜日と日曜日のみを除外。
この関数は月初からの経過日数を求めるのに有益なもの。
  • NETWORKDAYS関数が開始日を含めたある期間内の稼働日の日数
  • WORKDAY関数を使うと開始日から指定した日数だけ加算/減算した稼働日の日付
2.ある特定日の属する月の営業日数を求める
  • 日付:月間営業日数を求める月のある1日であればいつ何日でも構わない。
  • 月末日:EOMONTH(日付,0)
  • 月初日:EOMONTH(日付,-1)+1 前月の月末日の翌日(月初日)
  • 祝日等休業日:範囲で指定 (例:$C$10:$C$13 あるいは、範囲名)

書式:=NETWORKDAYS(EOMONTH(日付,-1)+1,EOMONTH(日付,0),祝日等休業日)