【先着1,000名様!】1,000円分をプレゼント!

添付図は、Excel 2013 の
[ホーム]→[配置 <セルを結合して中央揃え>]のアイコンの右側にある▼をクリックして表示されるドロップダウンメニューを示しています。
この中に[横方向に結合]はあるが、[縦方向に結合]が見当たらないのはなぜだと思われますか?

この理由に言及したMSの記事をご紹介いただきたいのですが、ナルホドと思わせる(あるいは説得力のある)私見でも構いません。

「[縦方向に結合]は?」の質問画像

A 回答 (1件)

調べてみますと確かに縦方向の結合というのは無いみたいです.ただ,横方向であるなら色々と記事がありますね.


私見にはなりますが,"横方向があるのに何故縦方向は無いのか"ではなく,
"横方向の機能ができたことのメリット"と,"そのメリットが縦方向の結合にあてはまるのか"で考えてみました.

Excelでは表計算の他に書類のフォーマットで利用される事がしばしばあります.例えば請求書や明細書など.
例として請求書を考えますと,品名,数量,単価,金額(数量×単価)が1行に収まって書かれている事が多いです.
特に品名については長い名称もあるので,その部分は横方向にセルが結合される事があります.その場合,品名数が多いなら範囲を決めて一括で横方向のみ結合ができると都合が良いわけです.
物品以外だと合計金額,消費税や送料などの金額が書かれますよね.そこは表計算の機能を使います.

上述の様な書類の場合には縦方向で明細を書く事はないでしょうから,結果として縦方向結合は使わないという事になります.

参考
http://www.relief.jp/docs/003851.html
http://www.newcom07.jp/EXCEL-database/blog/excel …
https://books.google.co.jp/books?id=ZP8d6AT60MMC …
    • good
    • 0
この回答へのお礼

早速のコメントを多謝です。

質問した私自身は、実は“縦に結合”だけでなくセル結合という機能に興味はありません。

ただ、“横に結合”を用意するなら“縦に結合”もあって然るべき、と思ったまで。
日本人のために用意したのかも知れないけど、テキストの配置で“縦書き”があるのなら、セルの“縦に結合”もそれなりにメリットはあろうかと。

ありがとうございました。

お礼日時:2017/07/06 14:03

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

このQ&Aを見た人はこんなQ&Aも見ています

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

Q入力文字を逆さに

写真のようにA1~A4の入力文字をA5~A8に逆さにして入力する方法を教えてください。
エクセル2010と2013を使用しています。
よろしくお願いいたします。

Aベストアンサー

こんなのはどうでしょうか。
「セルの書式設定」-「配置」で、文字列の方向を90度、および、-90度にします。

ちなみに、F1~I1は、A1~D1を数式で参照します。参照順番はお好きなように変更してください。
さらに云うなら、品名や生産日?の一覧を別途作成して、画像の印刷用シートは、それを参照するようにした方が、入力も楽ですね。

Qエクセルを私が開くと日付の表示がおかしくなる(他の人は問題なし)

会社でエクセルファイルを私が開くと日付の表示がおかしくなります。(他の人は問題ないです)

具体的には、平成○年○月○日という表示されるよう設定されファイル作成されているはずが、
私が開くと○月○日平成○○年と表示されます。

このようなファイルが一つではありませんので、私のPCでの「エクセル」の設定がおかしいのかと。

勿論、毎度毎度、気が付く度に手作業で直せますが、根本的にリセットしたいです。
気が付かないで印刷し取引先に送ったら注意を受けてしまいました。

原因・修正にお心当たりの方、ご教示の程宜しくお願い致します。

Aベストアンサー

参考になりますかね
https://oshiete.goo.ne.jp/qa/2408312.html
https://matome.naver.jp/odai/2141732667925396001

QExcelで2つの行を1つにするには?

Excelで2つの行を1つにするにはどうしたらよいでしょうか?

A ○
A   ○
B ○
B      ○

というデータを

A ○ ○
B ○    ○

という形にしたいです。

1行に○は1つで、同じ名前(AやB)であれば、位置も重複するものはありません。
しかし、全部で1万行近くあるため、関数等でまとめることができればと思います。

説明が下手で申し訳ありませんが、何か方法があれば教えてください。
よろしくお願いします。

Aベストアンサー

ちょっと違った方法なので(マニュアル操作です)、興味があればお読みください。
「データ」タブの「総合」機能を使うものです。

集計元データが、Sheet1のA~Dにあるとします。
まず、空白のシート(Sheet2)のA1セルを選択した状態で、「データ」タブの「総合」を選択し、画像のように設定して、OKをクリックしてみて下さい。
すると、A列の値毎に○の数が集計されるので、1→〇に置き換えれば完成です。

Qエクセルの使い方ってどこで習いましたか?

学校では習いませんよね?

Aベストアンサー

私も独学です。
解らないのはネット検索で結構見つかりますので助かっています。(笑)

Qエクセルで特定の数字だけ勝手に変換されてしまいます

エクセル2010で48,609.793と入力するのですが
入力後のセルを見てみると48,609.792999999と
勝手に変換されてしまいます。
48,609.792や48,609.794ではそのままなのですが
なぜなのでしょうか?
計算上で入力した数値を使用したく困っています。

Aベストアンサー

10進数をコンピュータ内部では2進数の形で保持することによる誤差だそうです。
なるべくこの誤差が出ないようにExcelは工夫されているそうですが、
特定の数字を入力すると「99999…」が現れるのだとか。
この質問を見て調べるまで全然知りませんでした。
https://answers.microsoft.com/ja-jp/msoffice/forum/msoffice_excel-mso_other/excel/bbaaa7f0-5e73-4d7c-aa05-6709a3357d26
https://support.microsoft.com/ja-jp/help/813530

計算式には数字を丸める関数を入れると対処できると思います。
ROUNDやROUNDUP関数で引数を3にしてみてください。
http://kokoro.kir.jp/excel/round.html

Qエクセル 数式を教えてください!

エクセルの数式を教えてください!

エクセルでタイムカードを作成しているのですが、休憩時間が2枠ある場合(①通常時間帯②深夜時間帯)の各時間(拘束時間・労働時間・日勤時間・通常残業・深夜
時間・深夜残業)の算出数式が分かりません。

画像のように、休憩時間は①通常時間帯と②深夜時間帯(22:00~5:00)の2枠あり、それぞれ合計時間を数値で入力します。
各時間帯の休憩時間がそれぞれ、
・拘束時間・労働時間・日勤時間・通常残業・深夜時間・深夜残業に反映させるようにしたいのですが、休憩が2枠あるため数式がうまくいきません。。

深夜帯(深夜時間・深夜残業)は22:00~5:00で、1日の労働時間が8時間を超えた場合に残業となります。

画像のように、【拘束時間・労働時間・日勤時間・通常残業・深夜時間・深夜残業】に適切な数値(出勤退勤はh:mmで入力し、その他は15分=0.25単位の数値)で計算されるようにしたいです!

賢者の皆様、どうか宜しくお願い致します!

Aベストアンサー

ANo3です。

>15分を0.25と数値で計算させる方法がわからないので
シリアル値は1日が1.0となるように計算しています。

シリアル値の時間をTとするなら
 =HOUR(T)+MINUTE(T)/60
とすることで、時間単位(15分は0.25時間)に該当する値を得られます。
例えば、3:15 → 3.25 となります。

上記の1日=1.0(1日=24時間)を利用すれば、もっと簡単に
 =T*24
とすることでも、同様の結果を得ることができます。

※どちらの場合も、表示書式は「数値」や「標準」としておく必要があります。

Q入金夜空をたてるのに、請求日を入れたら自動で出るようにできませんでしょうか?

シート1で施主別の支払い条件を入力して
シート2には、かなりの数の施主からの受注一覧が入力されています。
請求日は常に入力していくのですが、入金予想月日を隣に出せるようには出来ないでしょうか?
施主毎に支払い条件が違います。
if関数で支払い条件が施主毎に違わずひとつしかない場合は、計算できるとは思ったのですが、施主にあわせた支払い条件で入金予想月日が出せるなら出したいです。
どうかよろしくお願い致します。

Aベストアンサー

ANo2です

>私もvlookupで出来るかなと思ったのですが
>日にちをピンポイントで計算できる方法は難しいですよね?
日付を取得できるような表にしておけば(例えばANo2のようなもの)Lookup系の関数などを利用して計算は可能と思います。

あくまでも現状の文章形式にこだわるのであれば、それを関数で解析するのはかなり面倒なことになると思います。(形式を決め打ちにすれば可能かな)
関数だと面倒すぎるので、ユーザ関数にして解析してみました。
文章のルールが不明ですが、例示の形式から勝手に想定しています。
また、支払は必ず締日の翌月という仮定をしています。

使い方は、支払日を求めたいセルに
 =PayDate(会社名のセル, 請求日のセル)
として関数式を設定します。
(多分、請求日、会社名は同じ行なので両方を指定する必要はなさそうですが…)

※ 請求日にはDate形式の値が入っているものと仮定しています
※ 戻り値はDate形式なので、セルの書式を日付にしておく必要があります
※ 請求日と締日が同じ日の場合は、締日に間に合うものとして計算

コードの大部分が文章の解析とチェックになっていますが、実際の計算だけなら、数行のコードで足りるものと思います。
以下、ご参考までに。

Function PayDate(ByVal id As String, ByVal d As Date) As Variant

Dim table As Range, RE, M
Dim index As Long, s As String, dt As Date
Dim yy As Integer, mm As Integer, opt As Integer

Set table = Worksheets("Sheet1").Columns(1)
Set RE = CreateObject("VBScript.RegExp")
RE.Pattern = "^(\S+?)締め翌月(\S+?)払い$"


'条件表を検索
On Error Resume Next
index = WorksheetFunction.Match(id, table, 0)
If Err <> 0 Then
 PayDate = "#Not Found!"
 Exit Function
End If
On Error GoTo 0

'条件の文字列解析
s = table.Cells(index, 1).Offset(, 1).Value
Set M = RE.Execute(s)
If M.Count = 0 Then
 PayDate = "#Bad Info!"
 Exit Function
End If

 '締日チェック
yy = Year(d)
mm = Month(d)
If yy = 1899 And mm = 12 Then
 PayDate = "#Value!"
 Exit Function
End If

s = M(0).SubMatches(0)
If s = "月末" Then
 dt = DateSerial(yy, mm + 1, 1) - 1
Else
 dt = DateSerial(yy, mm, Replace(s, "日", ""))
End If
If d > dt Then opt = 2 Else opt = 1


 '支払日チェック
yy = Year(dt)
mm = Month(dt)
s = M(0).SubMatches(1)
If s = "末" Then
 dt = DateSerial(yy, mm + opt + 1, 1) - 1
Else
 dt = DateSerial(yy, mm + opt, Replace(s, "日", ""))
End If

PayDate = dt

End Function

※ 条件表に会社名がない場合は #Not Found!に、条件の文章が仮定した形式と異なる場合は #Bad Info!に、文章中の日付データがおかしな場合等は #Value!などのエラーになります。

ANo2です

>私もvlookupで出来るかなと思ったのですが
>日にちをピンポイントで計算できる方法は難しいですよね?
日付を取得できるような表にしておけば(例えばANo2のようなもの)Lookup系の関数などを利用して計算は可能と思います。

あくまでも現状の文章形式にこだわるのであれば、それを関数で解析するのはかなり面倒なことになると思います。(形式を決め打ちにすれば可能かな)
関数だと面倒すぎるので、ユーザ関数にして解析してみました。
文章のルールが不明ですが、例示の形式から勝手に想定してい...続きを読む

Qコピー&ペーストではなく数式やエクセルの機能を使ってデータを反映させたい。

下記の「表①」のエクセルデータを、「表②」に反映させたいです。
「表②」のB3セルに、数式を入れて、「表①」のログイン・ログオフ時刻を「表②」へ
自動反映させたいのですが、どのような式を入れたらいいかがわかりません。

現状は、目視とコピー&ペーストで表①→表②へ貼りつけていますが、
スタッフの数が多いのとシフト勤務で出勤日数も時間もバラバラで、作業が大変です。

また、早くて正確なら他の方法でもいいです。
よろしくお願いします。


表①
A B C D E
1 氏名 日付 ログイン 日付 ログオフ
2 田中 舞子 2017/5/16 8:21:35 2017/5/16 17:34:38
3 田中 舞子 2017/5/17 8:22:40 2017/5/17 17:35:00
4 田中 舞子 2017/5/18 8:28:02 2017/5/18 17:35:55
5 田中 舞子 2017/5/19 8:22:09 2017/5/19 17:34:18
6 田中 舞子 2017/5/22 8:18:03 2017/5/22 17:33:13
7 三田 建造 2017/5/23 8:19:55 2017/5/23 17:39:44
8 三田 建造 2017/5/25 8:21:03 2017/5/25 17:38:04
9 三田 建造 2017/5/26 8:17:45 2017/5/26 17:31:54
10 三田 建造 2017/5/29 8:19:42 2017/5/29 17:32:39
11 三田 建造 2017/5/30 8:20:12 2017/5/30 17:33:26
12 牧 重三 2017/5/31 16:18:33 2017/5/31 23:31:36
13 牧 重三 2017/6/1 16:20:08 2017/6/1 23:35:33
14 牧 重三 2017/6/2 17:18:35 2017/6/2 23:41:05
15 牧 重三 2017/6/5 15:20:00 2017/6/5 23:31:54
16 牧 重三 2017/6/6 19:22:05 2017/6/6 23:41:14
17 長岐 知美 2017/6/7 8:25:48 2017/6/7 17:34:38
18 長岐 知美 2017/6/8 8:26:24 2017/6/8 17:36:52
19 長岐 知美 2017/6/9 8:26:01 2017/6/9 17:34:08
20 長岐 知美 2017/6/12 8:19:24 2017/6/12 17:32:02
21 篠田 亜紀 2017/5/21 8:19:14 2017/5/21 17:32:29
22 柿田 輝未 2017/5/28 7:34:55 2017/5/28 17:17:54
23 荒元 耕平 2017/6/4 7:32:49 2017/6/4 17:32:50
24 佐田 容子 2017/6/11 8:18:35 2017/6/11 17:41:05
25 藤島 澄人 2017/6/12 8:25:15 2017/6/12 17:59:55
26 藤島 澄人 2017/6/13 8:45:31 2017/6/13 17:41:06
27 藤島 澄人 2017/6/14 8:05:34 2017/6/14 17:28:14
28 藤島 澄人 2017/6/15 8:13:25 2017/6/15 17:30:24


表②
   A B C D E F G
1 田中 舞子 三田 建造 牧 重三 ・・・・
2 日付 ログイン ログオフ ログイン ログオフ ログイン ログオフ
3 2017/5/16 B3
4 2017/5/17
5 2017/5/18
6 2017/5/19
7 2017/5/20
8 2017/5/21
9 2017/5/22
10 2017/5/23
11 2017/5/24
12 2017/5/25
13 2017/5/26
14 2017/5/27
15 2017/5/28
16 2017/5/29
17 2017/5/30
18 2017/5/31
19 2017/6/1
20 2017/6/2
21 2017/6/3
22 2017/6/4
23 2017/6/5
24 2017/6/6
25 2017/6/7
26 2017/6/8
27 2017/6/9
28 2017/6/10
29 2017/6/11
30 2017/6/12
31 2017/6/13
32 2017/6/14
33 2017/6/15

下記の「表①」のエクセルデータを、「表②」に反映させたいです。
「表②」のB3セルに、数式を入れて、「表①」のログイン・ログオフ時刻を「表②」へ
自動反映させたいのですが、どのような式を入れたらいいかがわかりません。

現状は、目視とコピー&ペーストで表①→表②へ貼りつけていますが、
スタッフの数が多いのとシフト勤務で出勤日数も時間もバラバラで、作業が大変です。

また、早くて正確なら他の方法でもいいです。
よろしくお願いします。


表①
A B ...続きを読む

Aベストアンサー

表①のB列ですが、シリアル値「2017/5/16 8:21:35」を表示形式で「2017/5/16」と表示していませんか?もしそうであればNGです。B2セルは時刻の部分をゼロにしてください。

2人ログオンする日がある件ですが、残念ながら、この方式では実現できません。
No.1 chonamiさんの案が一番簡単そうです。たぶん、こんな感じを想定していると思われます。

【B3セル】=SUMIFS(表①!$C:$C,表①!$A:$A,B$1,表①!$B:$B,$A3)
※C3セルは、上記を参考にご自分で考えてみて下さい。

Q図形オブジェクトの消去

エクセルファイルが重く所々に透明なオブジェクトが多数あり
指定範囲の図形オブジェクトの消去のマクロを教えて下さい

Aベストアンサー

こんにちは。

>他のエクセルでテスト用に色を付けないで実行しましたが何も変化なしでした。
図形を描くプログラムを実行したけれども、何も変化が起こらなかったということですね。
もう少し詳しい状況が分かればとは思いますが、私の思っている状態とは違うようです。簡単に分かる方法は、(ActiveSheet.)Shapes.Count と見えているものとの数を比較してみればよいです。

それから、コードを見直しましたが、線が消えないのは、私のミスでした。お手数掛けました。基本的には1行直しただけですが、これで様子を見てください。もちろん、グラフやボタンは消えないようになっています。

'//
Sub DeleteSomeAutoShapesR()
Dim Rng As Range
Dim shp As Variant
If TypeName(Selection) <> "Range" Then Exit Sub
Set Rng = Selection
If Rng.Count <= 1 Then MsgBox "範囲を指定してください。", vbExclamation: Exit Sub
For Each shp In ActiveSheet.Shapes
 With shp
 If .ShapeStyle > 0 Then
  If Not Intersect(Rng, Range(.TopLeftCell, .BottomRightCell)) Is Nothing Then
    .Delete
  End If
 End If
 End With
Next
End Sub

こんにちは。

>他のエクセルでテスト用に色を付けないで実行しましたが何も変化なしでした。
図形を描くプログラムを実行したけれども、何も変化が起こらなかったということですね。
もう少し詳しい状況が分かればとは思いますが、私の思っている状態とは違うようです。簡単に分かる方法は、(ActiveSheet.)Shapes.Count と見えているものとの数を比較してみればよいです。

それから、コードを見直しましたが、線が消えないのは、私のミスでした。お手数掛けました。基本的には1行直しただけですが、これで様子...続きを読む

QエクセルのVLOOKUPで1つの検索値に複数の該当が有った場合の処理

お世話に成ります。
エクセル2010のVLOOKUP関数で、例えばA列に日付が入っていて、B列に人の名前が入っていて、日付けで検索した場合にA列に同じ日付が有って、B列に違う名前が有った場合の処理について教えてください。

やりたいのは、上から順に名前が引き当てられる。 <表示例 1>
これは当方には難しい気がするので、第2希望としては全ての該当氏名が同じ日付に引き当てられる。
<表示例 2>
この場合、表示させるセルの場所の指定が煩雑になりそうな気がしますが、何とかできないでしょうか?

A列       B列
2017/7/1    Aさん
2017/8/1    Bさん
1017/7/1    Cさん

<表示例 1>
検索値    結果 
2017/7/1   Aさん
2017/7/1   Cさん

もしくは
<表示例 2>
検索値    結果 
2017/7/1   Aさん、Cさん

Aベストアンサー

VLOOKUP関数ではなくて、フィルターの詳細設定で表示例1のようにできます。
[データ]→フィルター横にある[詳細設定]で。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング