たびたび申し訳ありません。
こちらで教えてもらった式をセルに設定すると
それがウマく動くときと動かないときがあります。
A1 1.3(1日と3時間)
A2 1.6(1日と6時間)
A3 2.9(2日と9時間)になるトコロを3.1(3日と1時間)
とさせるのに
=INT(A1+A2)+DEC2OCT(INT(MOD(A1+A2,1)*10))/10
あるいは
=INT(A1+A2)+INT(MOD(A1+A2,1)/0.8)+MOD(MOD(A1+A2,1),0.8)
を設定すればいいようなのですが、セルによって動くときと
動かないときがあって、原因がわからないでいます
(参照URL http://okweb.jp/kotaeru.php3?q=1272124)。
申し訳ありませんが、ご教授ください。当方完全な文系です。
本当にご迷惑かけます(涙
No.2
- 回答日時:
> A1 1.3(1日と3時間)
> A2 1.6(1日と6時間)
> A3 2.9(2日と9時間)になるトコロを…
> とさせるのに
と、A1とA2のセルを元にA3のセルに計算結果を表示させる話が、
> セルによって動くときと
> 動かないときがあって、
A3だけでない、複数のセルの話になっていませんか?
他のセルに数値や数式を設定したのなら、その条件を書いてもらえないと、何が問題になっているのか読み取れません。
B1,B2に数値、B3にはA3をコピー&ペースト。
C1,C2に数値、C3にはA3をコピー&ペースト。
…
と、→向きに広げていくのなら問題ないハズです。
No.3
- 回答日時:
>セルによって動くときと動かないときがあって、原因がわからないでいます
セルによって、動く動かないというのは、セルの位置なのでしょうか?
メニューのツール-オプション-計算方法-自動
になっているのでしょうか?
それから、関係ないのですが、「セルによって動く」という表現は、Excelでは動的な印象から、VBAの質問と受け取られますので、なるべく正確に表現してください。
この回答への補足
あっWendy02さん、たびたびお手数かけます。皆さん同様の質問を
していただいてますので、以下一括して正確な状態を補足致します。
当初の条件とちがうやん!というトコロもあると思いますが
どうかご容赦ください。
A B C
1 5.4 0.0 5.4 ←この行のCは問題なかった
2 5.3 0.7 6.0 ←本当は6.2にならなくてはいけない
3 10.1 3.7 14.0 ←ここのCはまた問題なくなっている
このように動いてしまうんです。まず式をC1のセルに設定して
+マークを下に引っ張ってコピーしたんですが、マズいでしょうか?
メニューのツール-オプション-計算方法-自動
にはなっていました。
説明不充分で申し訳ありませんでした。
No.5
- 回答日時:
すみません。
私は、気がつきませんでした。
とりあえず、修正してみました。
C1:~下へ
=INT(A1)+INT(B1)+INT(MOD(A1,1)+MOD(B1,1)/0.8)+MOD(MOD(A1,1)+MOD(B1,1),0.8)
この回答への補足
この関数を設定してみましたが、やはりウマくいきません。こちらの
PCの設定が何が悪いのでしょうか。それにしてもこんなムズカシイ関数
使ったことありませんです。
No.6
- 回答日時:
=INT(A1)+INT(B1)+DEC2OCT((A1+B1-(INT(A1)+INT(B1)))*10)/10
この回答への補足
お答えありがとうございます。しかしやはりできませんでした。
セルが#####となって、ヘルプに
1.分析ツール アドインが登録されていない状態で、このアドインの関数が使用されている
2.存在しない名前が使われている
3.名前の指定が正しくない
4.関数名の指定が正しくない
5.数式中の文字列が二重引用符 (") で囲まれていない
6.セル範囲の参照にコロン (:) が抜けている
7.ほかのシートへの参照が一重引用符 (') で囲まれていない
と出ました。参考にしていただけますか?
No.7
- 回答日時:
試してみると、案外ズレますね。
作業列を10列くらい使う計算です。
A1, B1に数値が入っているとして、C列から→向きに式を指定します。
C1:=INT(A1)
D1:=INT(B1)
E1:=A1-C1
F1:=B1-D1
G1:=E1+F1
H1:=INT(G1/0.8)
I1:=C1+D1+H1
J1:=IF(H1=0,G1,G1-0.8)
K1:=IF(J1<0,0,J1)
L1:=I1+K1
と、ここまででL1に答えが出ます。
C~Kの列を非表示にすると見た目が良いです。
この回答への補足
補足が遅くなり、申し訳ありません。neKo_deux さんの
おっしゃるとおり、何列か使うといいのかもしれませんが
できれば1つの式、というか、1つの関数で解決できたらと
欲張っております。でもみなさん、頭いいですね~一般人なんて
ありえません(ワシは一般人以下ということか:ジョークです)。
No.8
- 回答日時:
VBA・・ソフトをダウンロード の必要はない。
ツール > マクロ で とりあえず何か記録して・・操作して・・記録終了
ツール > マクロ で VisualBasicエディタ を開いてみる。
データシート C1 に ユーザー関数設定
A1B1
5.30.7
fx の 関数の分類の ユーザー定義 で
マクロ ファンクション名「変な8H単位足し算」を指定
c1 セル の式
=変な8H単位足し算(A1,B1)
結果 6.2 表示 セルの 書式 標準
・・ 普通は 残業時間と単価が違うのでこういう計算はしないと思います。 パートやアルバイトなら 単純な時間の累積で良さそうなので 何に使うのか・・
ユーザー関数設定
マクロ VBエディタで 挿入 > 標準モジュール
↓マクロ VBエディタで 標準モジュールに以下コピー↓
Function 変な8H単位足し算(セル1 As Range, セル2 As Range)
数値1 = セル1.Value
数値2 = セル2.Value
整数部 = Int(数値1) + Int(数値2)
時間の繰上げ部 = Int((数値1 + 数値2 - 整数部) / 0.8)
時間の部 = (数値1 + 数値2 - 整数部) - 時間の繰上げ部 * 0.8
変な8H単位足し算 = 整数部 + 時間の繰上げ部 + 時間の部
End Function
この回答への補足
何に使うのかについては、当初の質問のとおりで、休暇取得日数と時間の集計です。
この質問を数人にしたとき「意味がない」とか「わけわからん」とか
言われましたが、長年続いてきたやりかたで、私個人には
どうすることもできない状態です。こういうやりかたを
採用している会社って、珍しいんでしょうか?
No.9
- 回答日時:
もう面倒くさいので、新しい関数「DADD()」をマクロで作っちゃいましょう。
難しく構えないで下さい。ここで言われたとおりのことをしていただければ、
次回からは、SUM関数と全く同様の手順で動くようになりますよ。
マクロを編集するためのツールは、Excelを普通にインストールしたときに自動的に
インストールされていますから、問題ありません。
さて、まずは新規ブックを開いてください。そうしたら以下の操作を行います。
1) ツール(T)-マクロ(M)-新しいマクロの記録(R)を開く
2) 「マクロの記録」ウィンドウが表示されたら、何も変更せずにOKをクリック
3) 画面上に二つのボタンが表示されたツールバーが現れたら、左側の「■」をクリックして記録終了
4) Altキーを押しながらF8キーを押して、マクロウィンドウを開く
5) マクロウィンドウから、編集(E)ボタンをクリック
6) 現れた「Microsoft Visual Basic」の右側に
Sub Macro1()
'
'
'
End Sub
と書いてある部分を消去して、下の「ここから」から「ここまで」を貼り付ける。
'ここから-------------------------------------------------------
Private Function DADD(DL As Range) As Double
Dim INTNUM As Long
Dim PNTNUM As Double
For Each CL In DL
INTNUM = INTNUM + Application.WorksheetFunction.RoundDown(CL, 0)
PNTNUM = PNTNUM + CDbl(CL) - Application.WorksheetFunction.RoundDown(CL, 0)
Next CL
INTNUM = INTNUM + PNTNUM \ 0.8
PNTNUM = ((PNTNUM * 10) Mod 8) / 10
DADD = INTNUM + PNTNUM
End Function
'ここまで-------------------------------------------------------
できましたでしょうか?そうしたら実験をしてみましょう。
現在のブックの任意のシート状のセルA1に1.6、A2に0.3、A3に2.5と入力してみてください。
セルA4に =DADD(A1:A3) と入力してみましょう。 A4に「4.6」と表示されましたか?
その値は期待通りですか?、例えばこの状態でセルA1の値を書き換えたらA4の値も変わりますか?
でも毎度毎度新しいブックを作るたびに上のようなことを書いていては面倒ですね。
というわけで、どのブックでも上の関数が使えるように、登録してしまいましょう。
まずはシートに落書きした、さっきの実験結果を消去してください。
さて行きますよ。もう一歩です。
1) 出来上がったファイルを保存します。
その際、ファイルの種類を「Microsoft Excelアドイン (*.xla)」にします。ファイル名はなんでも結構です(後で分かりやすい名前にしておいた方がいいですが)。保存先が「AddIns」になっていたら変えないでください。
2) Excelの「ツール(T)-アドイン(I)」でアドインダイアログを開き、参照ボタンをクリックします。
3) 先ほど保存したファイルが登場するはずなのでこれを選択します。
はい、これで完成です。好きなブックを開いていただいて同じことを試してみてください。当然SUM関数と同様に、「=DADD(」とまで打ち込んでから、合計したいセルをドラッグしていってもOKですよ。
この回答への補足
皆様ありがとうございます。申し訳ないんですが
トライしてみるのは明日になりそうです。結果のちほど
報告いたします。しかしこんな複雑なことになるとは
思いもよりませんでした。
ではでは本日はこれにて。
補足欄が使えませんので、お礼欄に記入いたします。
ご指定のようにやってみましたが、やはりできません。やりかたが
マズイのでしょうか...
A B C
1 6.5 0.3 7.0←ここはオッケー
2 4.7 1.0 6.7←本当は5.7
3 5.6 2.4 8.2←ここもオッケー
4 12 0.6 13.6←本当は12.6
No.10
- 回答日時:
#6です。
アドインで分析ツールを入れておられないのですね。
質問文でDEC2OCTを使っておられたので、入れられたものだと思っていました。
DEC2OCTを使えるようにするには、
[ツール] メニューの [アドイン] をクリックします。
[アドイン] の一覧の [分析ツール] ボックスを選択し、[OK] をクリックします。
この回答への補足
たびたびお答えありがとうございます。しっしかし!
前回懸案部分は計算されたんですが、他のセルがやはり
ウマく計算されません。
今回の懸案部分の具体例:
A B C
4 5.3 0.7 6.2 ←前回懸案部分はオッケー
5 6.5 0.3 6.7 ←本来は7.0
6 1.4 0.0 1.3 ←本来は1.4
ご回答のとおり、分析ツールはOKにしてみました。
それにしても、こんな複雑なことになるとは意外でした。
お答えいただいても、ちゃんと設定できる腕があるのか
我ながら不安になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/04/13 10:55
- Excel(エクセル) エクセルで日付に続けて連番を表示したい 6 2022/05/25 23:33
- Excel(エクセル) 現時点の年齢を算出して、その年齢と一致したセルを色付けしたい。 4 2022/06/23 17:49
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
太字に設定されているセルの個...
-
Excelで挿入した図をセルの中央...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
エクセルでの検索ボックスの作...
-
【EXCEL】先週の月曜日の日付を...
-
アポストロフィーの一括挿入 ...
-
フォントの色を指定して削除出...
-
シート保護とグループ化機能を...
-
Excel ハイパーリンクのURLを別...
-
Excelで、図形内の文字をセルに...
-
excelで セルの移動時に...
-
マクロを実行すると画像がズレ...
-
クリックすると文章が表示され...
-
空白セルを空セルに置き換える...
-
VBA 見つからなかった時の処理
-
現在のセルの位置を返す関数は...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
Excelでセルをクリックす...
-
太字に設定されているセルの個...
-
Excel ハイパーリンクのURLを別...
-
Excelで、図形内の文字をセルに...
-
マクロを実行すると画像がズレ...
-
現在のセルの位置を返す関数は...
-
Excelで挿入した図をセルの中央...
-
フォントの色を指定して削除出...
-
VBA 見つからなかった時の処理
-
エクセルでの検索ボックスの作...
-
エクセル 未入力セルがあると...
-
Excel2007 色のカウント (VBA)
-
エクセルでPDFリンクを大量...
-
【EXCEL】先週の月曜日の日付を...
-
EXCELのセルや文字色の反映
-
セルがクリックされた回数をカ...
おすすめ情報