セル(F1)に3というデータが仮に入っているとします。
セル(F2)2、セル(G2)1、セル(H2)に12という計算で表示させたい
場合はマクロではどう記述すればよいでしょうか。
仮にF1に2というデータが入ってきた場合は、
セル(F2)1、セル(G2)12、セル(H2)に11という計算で表示させたい。
下記に表示例を示しています。
F1が1の場合 12、11、10
   4の場合 3 2 1
   5の場合 4 3 2
6の場合 5 4 3
7の場合 6 5 4
8の場合 7 6 5
9の場合 8 7 6
10の場合 9 8 7
11の場合 10 9 8
12の場合 11 10 9
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

マクロではないですが計算式で



セルF2 =if(F1>1,F1-1,F1+11)
セルG2 =if(F1>2,F1-2,F1+10)
セルH2 =if(F1>3,F1-3,F1+9)

とすればよいと思います。
    • good
    • 0

諸解答の内で一番簡単で,判りやすいコーディングではないでしょうか。


テーブル方式の利点が出ていると思います。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
a = Array(0, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 12, 11, 10)
For i = 1 To 12
If Worksheets("sheet1").Cells(1, 6) = a(i) Then
Worksheets("sheet1").Cells(2, 6) = a(i + 1)
Worksheets("sheet1").Cells(2, 7) = a(i + 2)
Worksheets("sheet1").Cells(2, 8) = a(i + 3)
End If
Next i
End Sub
    • good
    • 0

ifを登場させない方法で・・・



Sub Zengetu()
  Range("F2") = ((Range("F1") + 12 - 1) - 1) Mod 12 + 1
  Range("G2") = ((Range("F1") + 12 - 2) - 1) Mod 12 + 1
  Range("H2") = ((Range("F1") + 12 - 3) - 1) Mod 12 + 1
End Sub

数字に12を足して、1を引いて0~11または12~23になります。
これの12で割った余りを出してます。
1年前のカレンダーで計算している雰囲気です。
    • good
    • 0

これは、F1の値から1ずつ減らした数を(上限が12)それぞれのセルに表示するということでいいのでしょうか?


今月が1月なら1ヶ月前は12月とか。
いろんなやりかたがあるんですよね~

Sub test()
Dim I as integer
Dim A as integer
A=Val(Range("F1"))
For I=1 to 3
A = A - 1
if A < 1 Then
A=12
End If
Select I
Case 1
Range("F2")=A
Case 2
Range("G2")=A
Case 3
Range("H2")=A
End Select
Next
    • good
    • 0

このようなものでどうでしょうか?


おそらく、不必要な部分もあると思いますが・・・


If IsNumeric(Range("F1").Value) = True Then
If Range("F1").Value > 0 And Range("F1").Value < 13 And Int(Range("F1").Value) = Range("F1").Value Then

If Range("F1").Value = 1 Then
Range("F2").Value = 12
Else
Range("F2").Value = Range("F1").Value - 1
End If

If Range("F2").Value = 1 Then
Range("G2").Value = 12
Else
Range("G2").Value = Range("F2").Value - 1
End If

If Range("G2").Value = 1 Then
Range("H2").Value = 12
Else
Range("H2").Value = Range("G2").Value - 1
End If

Else
Range("F2").Value = ""
Range("G2").Value = ""
Range("H2").Value = ""
End If
Else
Range("F2").Value = ""
Range("G2").Value = ""
Range("H2").Value = ""
End If
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QホンダF1って表現はどうですか?

ホンダの新聞広告を見たんですが、ホンダF1と書いていたと思います。

ホンダはエンジンだけ提供しているんじゃないのですか?
BARがチーム名で車はBAR製なので、厳密にはホンダF1という表現は”オーバー”だと思うのですが。

トヨタは車を全部作ってるので、トヨタF1でいいと思ってます。

ご意見お願いします。

Aベストアンサー

こんばんわ
>ホンダF1という表現は”オーバー”だと思うのですが<
私などは"オーバー"と言うよりも”誤植?”なんて思いますけど。。。。
たしかにBARチームは技術的には立ち遅れていて自動車メーカーの技術や資金が無ければ今年の様な成績をおさめる事など不可能だったと思われます
しかし、いくら技術や資金を提供したからと言っても
エントリーしているのはBARであってホンダは”ただの部品屋”にすぎないんですよ
マクラーレンにはダイムラー ウィリアムズにはBMWのそれぞれの技術が投入されていても両社とも広告などにその様な事は書いて有りませんよね。
これは両社とも自分達の立場をわきまえいるからなんでしょうけどね。
駄文なって申し訳ありません。

QセルA1とF1、A2とF2、A3とF3…を比較して、内容が同じであれば"〆指示済"、異なれば"未〆指示"をD列に表示するようなVBA

たとえばセルA1とF1、A2とF2、A3とF3…を比較して、内容が同じであれば"〆指示済"、異なれば"未〆指示"をD列に表示するようなVBAって出来ますか?

・「作業中フォルダ」に存在するファイルのリストをA列に、「〆指示フォルダ」に存在するファイルのリストをE列に表示
・両者をVLOOKUPで照合したリストをF列に表示
以上の作業をVBAで行ったデータがあるのですが、その先がつまづいてしまってます…

r = 202
i = 3
Cells(i, 6) = Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False)
For i = 3 To r
If Cells(i, 1) = "" Then
Cells(i, 4) = ""
ElseIf Cells(i, 1) = Cells(i, 6) Then
Cells(i, 4) = "〆指示済"
Else
Cells(i, 4) = "未〆指示"
End If
Next i

ElseIfのところで「実行時エラー'13':型が一致しません。」としかられてしまいます…
これって間違ってるのでしょうか??
初心者及び独学なので「参考書買え!」といわれればそれまでなのですが、どうかご教授願えませんでしょうか?

たとえばセルA1とF1、A2とF2、A3とF3…を比較して、内容が同じであれば"〆指示済"、異なれば"未〆指示"をD列に表示するようなVBAって出来ますか?

・「作業中フォルダ」に存在するファイルのリストをA列に、「〆指示フォルダ」に存在するファイルのリストをE列に表示
・両者をVLOOKUPで照合したリストをF列に表示
以上の作業をVBAで行ったデータがあるのですが、その先がつまづいてしまってます…

r = 202
i = 3
Cells(i, 6) = Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E"...続きを読む

Aベストアンサー

ElseIf Cells(i,1) = Cells(i, 6) Then の部分で 「実行時エラー'13':型が一致しません。」
と出るのはANo.1さんが指摘されて、既に確認されたとおり#N/Aエラーが発生しているためです。
For 文の前に Cells(i, 6)の内容を""や"エラー"などに置き換えてはどうでしょうか?
If IsError(Cells(i, 6)) Then
  Cells(i, 6) = ""
End If
など

> Cells(i, 6) = Application.IsError(Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False), "", Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False))
の部分がエラーになるのは、IsErrorワークシート関数の使い方が間違っているためです。
恐らくIFワークシート関数を入れるのを忘れていませんか?

ElseIf Cells(i,1) = Cells(i, 6) Then の部分で 「実行時エラー'13':型が一致しません。」
と出るのはANo.1さんが指摘されて、既に確認されたとおり#N/Aエラーが発生しているためです。
For 文の前に Cells(i, 6)の内容を""や"エラー"などに置き換えてはどうでしょうか?
If IsError(Cells(i, 6)) Then
  Cells(i, 6) = ""
End If
など

> Cells(i, 6) = Application.IsError(Application.VLookup(Cells(i, 1), Worksheets("作業中リスト").Range("E3:E" & r), 1, False), "", Application.VLookup(Ce...続きを読む

QホンダF1GP復帰

ホンダが2015年シーズンからF1GPに復帰するという。
マクラーレンへのエンジン供給での復帰だが、ホンダによると2015年からのレギュレーション変更で復帰を決めたという。
具体的にどういう変更があったのだろうか?
いずれにせよ、ホンダのF1GP復帰は喜ばしい。

Aベストアンサー

ワクワクしますね。

F1は2014年シーズンから、レギュレーション(規定)が変更され、エンジンの排気量は1600ccと現行の2400ccから大幅にダウンサイジングされるとともに、少ない燃料で走ることなどが求められるます。

ホンダにとってのポイントは、新規制ではエンジンにターボチャージャー(過給機)が付き、エネルギー回生システムが採用されるこです。

エネルギー回生システムは、エンジンとモーターを併用して走るハイブリッド車(HV)で使われています。簡単に言えば、ブレーキの制動力をモーターの動力に換えて、無駄なくエネルギーを活用する仕組みです。

ホンダはトヨタ自動車と並び、HV技術で世界的に先行していますが、今回のF1参戦では、将来の“究極のHV”ともいえる技術を目指すことを想定しています。

それはエネルギー回生システムとターボ、つまり、HVのキモとなるモーターとターボの組み合わせです。

 

Q二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセル

二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を
別のシートに設定するには、どうしたらいいでしょうか?

[シート1]

--|A---B---C---D---E
--+---+---+---+---+---
01|A1 ???
02|A2 yyy
03|B1 ???
04|C1 sss


[シート2]
--|A---B---C---D---E
--+---+---+---+---+---
01|A1 aaa
02|A3 bbb
03|B0 xxx
04|B1 ccc
05|C1 sss



シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、
シート2の [B] の値を シート1の[C]に設定するための関数はどのようにしたら良いでしょうか?

最終的に、シート1が

--|A---B---C---D---E
--+---+---+---+---+---
01|A1 ??? aaa
02|A2 yyy
03|B1 ??? ccc
04|C1 sss sss

となります。

Excelの関数あマクロは、どうしても分からなく質問させてもらいました。

申し訳ありませんが、ご教授宜しくお願い致します。

二つのシートのセルを比較して、あるセルの値が一致した場合に、片方のセルの値を
別のシートに設定するには、どうしたらいいでしょうか?

[シート1]

--|A---B---C---D---E
--+---+---+---+---+---
01|A1 ???
02|A2 yyy
03|B1 ???
04|C1 sss


[シート2]
--|A---B---C---D---E
--+---+---+---+---+---
01|A1 aaa
02|A3 bbb
03|B0 xxx
04|B1 ccc
05|C1 sss



シート1 [Aのセル]とシート2の[Aのセル] を比較し、同じ値だった場合に、
シート2の [B] の値を シート1の[C]に設定するための関数はどの...続きを読む

Aベストアンサー

一例です。
Sheet1のC1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:C,3,FALSE),"")として下方向にコピー

Qなぜ、いまのホンダはF1で勝てないのですか?

第1期はレース優勝、第2期は何度もシリーズ優勝し16戦中15勝したホンダが、なぜいまF1で勝てないのですか?海老沢泰久さんの「F1地上の夢」を何度も読み、1期・2期とも、優勝という夢を賭けて寝食を忘れてシリーズを戦った人々の武勇伝を知りましたが、いまはそういう人がいないのでしょうか?それとも、やはり投下している予算が足りないのでしょうか?それとも、今のホンダには宗一郎さんのようなカリスマトップがいないからでしょうか?最近のF1事情はあまりよく知りませんが、いくら市販車の売れ行きが好調でも、いまのホンダには魅力を感じません。どなたか、今のホンダF1事情について詳しい方、また第1期・第2期とどこが違うのか推察できる方、どうか教えてください!

Aベストアンサー

クルマ専門のライターです。

まあ、端的に言ってしまえばホンダという企業が大きくなりすぎて、組織的に硬直化してきたということ。また、全社的にモータースポーツに資金を投じるわけにはいかなくなったということがあると思います。

自動車メーカーの本業は市販モデルをより多く売ることですが、今は環境面を重視させることが至上命題となっている。いかに速く走らせるか…ではない。

また、ホンダがメインターゲットとしている世代がファミリー層となり、今や「ミニバンのホンダ」と化してしまったこともあるでしょう。第二期F1参戦の頃、スポーツタイプのホンダ車を買った世代が今はファミリー層となっている。そして今のホンダがメインとしているのもこの世代なのです。昔はホンダ=若々しいという印象でしたが、言葉は悪いですが、今ではトヨタに次ぐオヤジ車がウリです。

レーシングエンジンを作るチームも、悪く言えばサラリーマン化しています。徹夜で仕上げた俺たちのスペシャルエンジンで…というより、規定の勤務時間で精一杯やりました的になっています。

第一期、第二期と単純比較した場合、ホンダが自慢としていたスピリッツが今は欠けている。だから勝負に絡んでいけないという感じではないでしょうか。

クルマ専門のライターです。

まあ、端的に言ってしまえばホンダという企業が大きくなりすぎて、組織的に硬直化してきたということ。また、全社的にモータースポーツに資金を投じるわけにはいかなくなったということがあると思います。

自動車メーカーの本業は市販モデルをより多く売ることですが、今は環境面を重視させることが至上命題となっている。いかに速く走らせるか…ではない。

また、ホンダがメインターゲットとしている世代がファミリー層となり、今や「ミニバンのホンダ」と化してしまったこと...続きを読む

QF2(編集)にて表示されたセルの色を変える

エクセルにて算式が入力されたセルでF2を押すと、それぞれのセルの枠に印がつきますが、その印がついたセルの色を変えて保存する事って出来るのでしょうか?
どうか宜しくお願いいたします。

Aベストアンサー

たとえばC1セルに
=A1+A3+A5
のように数式が記入してあります。

手順:
C1セルを選択
Ctrl+Gを押す
現れたダイアログでセル選択をクリック
現れたダイアログで
 参照元
  1レベルのみ
をマークしてOKする
A1,A3,A5セルが選択されるので,セルに色を塗る

以上です。
勿論関数などで,たとえば =SUM(A1:A10) のようになっていても同じにできるので,実際に試してみてください。

QホンダのF1歴史

私が小学生だった1990年前後からその後にかけてについてですが、ホンダの名前が付くチームがいろいろありましたよね。
ロータスホンダ マクラーレンホンダ ジョーダンホンダ BARホンダ
どうしてこのようにころころチーム名が変わるのですか?
これ以外にも、ホンダが関係したチームはありますか?
あと、どうしてホンダだけがF1に力を入れているのでしょうか?

Aベストアンサー

 uk_valueさん こんばんは

 ホンダがF1に挑戦し続ける歴史=故本田宗一郎氏の歴史と言って言いかと思います。

 本田氏は浜松生まれで、子供の頃数時間かけて飛行機のショー(今で言う所の曲芸飛行のショー)を見に行ったことが有るそうです。そこで感動を覚え,将来は飛行機に関連した仕事に就きたいと考えたそうです。その後同じエンジン繋がりと言う事で自動車修理会社に丁稚奉公するようになり、エンジンの事・工具の事等色々勉強するようになります。ピストンリング等の研究をしていた時期もありましたが、戦後本田技術研究所を作り二輪車の開発をする事になる。そして自転車にエンジンをのせただけの今のカブの原型ともう言うべきバイク??を作っています。
 その当時から、本田氏は「目指せ世界一」と言う信念の元にバイクレースに出る事を考えていた。その後、研究の成果が実りわずか2年で「マン島TT」等のレースで優勝するまでになる。

 次に本田氏が考え出したのは、バイクから自動車(四輪車)。時代はバイクから自動車に移ろうとしていた。当時通産省が打ち出した「特振法」で、新たなメーカーが自動車を生産出来なくなりそうになる。これから新たに自動車の生産に入ろうとしていたホンダは風前の灯火。そこで本田氏は決断する。「ホンダという会社は、バイクレースで培ってきた高い技術があるではないか。小さなバイクメーカーが自動車を作ったって、安全な車が作れる。それをお役人に認めさせるのだ。今までレースで大きくなったホンダ。自動車作る時もレースで大きくなってやる。そして参加するレースは世界最高峰の自動車レース”F1”だ。」と夢見たいな事を言い出す。そして色々紆余曲折ある中で昭和40年のメキシコグランプリで初優勝する事になる。これが第一期ホンダF1です。

 それ以降会社の経営状態等の問題でF1参戦してない時期もありますが、ホンダの根底には「レースで培った技術で大きくなった会社」と言う考えがあり、今でもF1にエンジンサプライヤーとして参戦しているんです。これは今でも故本田宗一郎氏の意思が大きく反映している「ホンダスピリット」そのものなのです。

 皆さんの言われる通り、欧米(特にヨーロッパ)ではF1はブランドイメージが有り、商売的にもF1に参戦する事の価値があります。そう言う意味でトヨタもF1に参戦しているですが、トヨタと違ってホンダの場合は「レースで大きくなった会社」と言う考えがいまだにF1参戦をさせているんです。

 生前本田宗一郎氏は「F1は走る実験室」と言っています。昭和49年(だったかな??)の時にシビックに搭載されたCVCCエンジンはF1エンジンの開発技術からフィードバックされた物と言われています。と言うように、ブランドイメージ以外にも、新たな技術開発のためにホンダはF1に参戦し続けているんです。

 uk_valueさん こんばんは

 ホンダがF1に挑戦し続ける歴史=故本田宗一郎氏の歴史と言って言いかと思います。

 本田氏は浜松生まれで、子供の頃数時間かけて飛行機のショー(今で言う所の曲芸飛行のショー)を見に行ったことが有るそうです。そこで感動を覚え,将来は飛行機に関連した仕事に就きたいと考えたそうです。その後同じエンジン繋がりと言う事で自動車修理会社に丁稚奉公するようになり、エンジンの事・工具の事等色々勉強するようになります。ピストンリング等の研究をしていた時期もあり...続きを読む

QExcelで10,9,8,7…を格好よく入力したい。

縦に上から下へ1,2,3のように入力するには
1を入れて、ctlキーを押したまま、その1を下方へドラッグします。
では先に10を入力し、下方に9,8,7...と入力するにはどうしたらよいでしょうか。

とりあえずは、関係ない列で昇順に入れて、降順に並べ替えています。
なお、環境はWin8.1&Excel2013です。
以上

Aベストアンサー

ちょっとだけ手間ですが、「10」と次の「9]まで入力し、
その2つのセルを選択状態にし、同様に「オートフィル」すれば実現できます。
2つの値からその規則性を読み取ってその規則でフィルするものです。
これを利用すると+2ずつとか-0.5ずつという規則でもやってくれます。

Q不景気でトヨタ、ホンダがF1、スバルがWRC撤退の可能性

この不況でトヨタは営業利益が1兆円吹き飛び、ホンダも大苦戦、スバルも車が全然うれていない、Fordも経営危機。こんな中で彼らがF1やWRCに残る可能性はどのくらいあるでしょうか?トヨタ、ホンダあたりは金があるからやはりF1を突き通すでしょうか?

Aベストアンサー

問題は、この不況がどのくらい長引くかに掛かっていると思われます。

まだ流動的ですが、仮にBIG3が公的資金で救済されず、倒産なり企業
解体の憂き目に遭った場合、数百万人規模の雇用が失われます。そう
なれば、米国の購買力はさらに衰退します。それは日本の乗用車マー
ケットの大幅な縮小を意味することになります。一説によれば、この
不況は10年規模のものだとも云われます。

レースに出ること=技術力やイメージ向上に繋がっているという社会
的コンセンサスが生きているうちならレース参戦を続けるのでしょう
が、近年は環境やらエネルギー資源転換というキーワードが力を持ち
つつあるように思えます。

それらは中長期的にはもっと必要性を増すと思いますし、自動車メー
カーもその傾向を無視できる状況ではありません。日本のメーカーも
これまでの戦略を大きく見直す時期(つまり、レースなどにお金を使
っていられる状況にない)に入ったと思います。

Q【エクセル】番地「12-3」「345」「6-7-8」の親番号だけ抜き出したい。

いつもお世話になってます。

A列に番地が入力されています。
「12-3」「4-5」「67―8―9」「901-2」など。
中にはハイフォンの無い「321」などの番地もあります。
一番左の親番号だけをB列に表示させるにはB列にどのような関数式を入れればよいのでしょうか。

・逐次、増えていく値なので「区切り位置」機能で分割する方法は考えてません。
・未入力のA列セルの隣のB列のセルは空白にしたいです。

よろしくお願いします。
(エクセル2003)

Aベストアンサー

=IF(A1="","",LEFT(A1,FIND("-",ASC(A1)&"-")-1))
でどうでしょうか?


人気Q&Aランキング

おすすめ情報