EXCELで星取表を作り勝ち点の計算を自動化させたいと思っています。
今一番難しそうなのは、順位が変わった時に星取表がずれてしまいます。
具体的には
 A B C D
A * O O -
B X * O X
C X X * O
D - O X *
これでもしCが2位になった場合に単純にデータの並び替えを行うと
 A B C D
A * O O -
C X X * O
B X * O X
D - O X *
とおかしな星取表(自分同士の対戦*を斜めに一直線にしたい)になってしまいます。
これを補正するにはどのような方法があるでしょうか?
伝わったか不安ですが、アドバイスお願い致します。

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

A 回答 (3件)

>縦方向にも勝ち点の欄を置くということですか?


そういうことになります。
邪魔なら、行を非表示にしておいてもいいし、並べ替えをする時だけ、縦の勝ち点の列を行列入れ替えて、コピペしてもいいでしょう(コピペは、行方向の並べ替えをする前にして下さい)。
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事出来たようです。
列の並び替え初めてやりました。

お礼日時:2003/09/25 09:10

ソートだけで出来るものかどうか。


関数式では無理でしょう。
興味が出てVBAでやって見ました。(少数例でテスト済み)
既にある表(A1:G7)の下(A11:G17)のA列(A11:A17)に新順序のチーム(か選手)名を入力する。そして下記を実行する。
A1:G7の勝負を組替えました。
Dim d
Sub test01()
Dim cl As Range
s = 10 '新しい表を作る開始行は11行から
d = Range("a1").CurrentRegion.Rows.Count
' MsgBox d
'----新縦チーム名順序を横にセット
For i = s + 2 To s + 2 + d - 2
Cells(1 + s, i - s) = Cells(i, 1)
Next i
'-----自分自身と交差するセルに*
For Each cl In Range(Cells(s + 2, 2), Cells(s + 2 + d - 2, 2 + d - 2))
' MsgBox Cells(cl.Row, 1) & "=" & Cells(1 + s, cl.Column)
If Cells(cl.Row, 1) = Cells(1 + s, cl.Column) Then
cl = "*"
End If
Next
'------元の表の勝敗を取ってくる
For Each cl In Range(Cells(s + 2, 2), Cells(s + 2 + d - 2, 2 + d - 2))
If cl = "*" Then GoTo p01
r = Cells(cl.Row, 1): c = Cells(1 + s, cl.Column)
cl = shoubu(r, c)
p01:
Next
End Sub
'---勝負を元の表(上部A2:G7から)取ってくる関数
Function shoubu(r, c)
For i = 2 To d
If Cells(i, 1) = r Then
For j = 2 To 2 + d - 2
If Cells(1, j) = c Then
shoubu = Cells(i, j)
End If
Next j
End If
Next i
End Function
    • good
    • 0

こんにちは。

maruru01です。

行方向(上下)に並べ替えて、さらに列方向(左右)に並べ替えればいいと思います。

この回答への補足

並び替えは勝ち点を優先してますが、縦方向にも勝ち点の欄を置くということですか?

補足日時:2003/09/24 15:54
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード

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

Qエクセルで星取表がつくりたいのですが・・・

IF関数を使って星取表を作成したいのですが可能でしょうか・・・
たとえばセルA1からC1まで枠がありその下にIF関数を使って○を表示させたいのです。検索する場所に2と入力するとセルB2に○が入力されるように出来ますでしょうか・・・
実際にIF関数を使って表示はできたのですが検索する数が複数になるとどうしたらいいかわからなくなりまして・・・いろいろためしてみたのですが駄目で・・・  
 1 3 5と入力したら別のセルの
1 3 5 の場所に
○ ○ ○
このように表示させたいのですが・・・
質問の意味がわかりにくくて申し訳ないです。

Aベストアンサー

#1の方が言うように、説明がちょっとあいまいで、解釈が間違っているかもしれませんが…。

A1からE1に例えば1~5の数字が入っていて、ある特定範囲のセル(下の例ではA5~C5のセル)に○を付けたい数字(下の例では1、3、4)を入力すれば、 A2~E2のセルに○が付くようにしたい、と言うように解釈しました。(↓イメージ)

  A B C D E
1 1 2 3 4 5 
2 ○  ○ ○
3
4
5 1 3 4       ←検索値の入力箇所

関数の入力については、A2のセルに

=IF(ISNA(MATCH(A1,$A$5:$C$5,0)),"","○")

と入力し、E2までコピーします。

解釈が間違っていたら教えてくださいね。

Q星取表の作り方

Excelで星取表を作成しています。
勝敗に○を記載したら、対戦相手に自動的に×が表示されるようにしたいのですが、わかる方教えてください。
Excel初心者です。他に便利な設定・自動計算などもありましたらよろしくお願いします。

Aベストアンサー

たとえばA1に○といれたらB1に×としたいなら、B1セルで
=IF(A1="○","×",IF(A1="×","○"))とするとA1に○が入れば×が出て、×が入れば○が出ます。
こんなのでどうでしょうか?

Q★エクセルで星取表を作成したい★

お世話になります。

エクセルのA~Zの行にあるデータをA列に入力した時に★(1でもいいのですが)を表示させたいのです。
  A  B   C   D  E  F G・・・・・
  1  2  3   4  5  6

1 ★
2   ★ 
6              ★

上のようなイメージです。VLOOKやIFなどやっては見たのですが出来ませんでした。
ちなみにVBAやマクロは苦手です。関数でよい方法はありませんか?
お願いします。

Aベストアンサー

まず、比較対象となるデータがA列から始まっているところに無理があります。
この例ですと、A2に1を入れたところに★を置くことになります。
計算式や関数が入っているセルに、定数を入れたらそれに置き換わってしまうから、VBAをつかわなければ無理です。

ということで、比較元となるものをB列からあてはめ、入力はA列で行うなら単純なIF関数でできます。

A B C D E・・・
  1 2 3 4
1 ★
3     ★
2   ★

B1に"=if($a1=b$1,"★","") と入れてこれを各セルにコピー(オートフィル)すればできます。

Qエクセルでサッカーの順意表を作り勝敗数でRANK関数を使用し順位が出る

エクセルでサッカーの順意表を作り勝敗数でRANK関数を使用し順位が出るようにしたのですが、同順位の場合得失点の条件も含めて順位をつけるようにしたいのですがどうしたらよいですか?

Aベストアンサー

サッカーの順位表と言うことですが、Jリーグのような勝ち点方式じゃなくって
単純に勝率と、得失点差で順位付けでしたら、
勝率に得失点差の重みを付けた欄を設けて、その欄でRANK()を見たらいいでしょう。
重み付けは、得失点差が最大2ケタとして、勝率に100000を掛けたものに得失点差を
足したものとします 下図参照。

それより、サッカーでも野球でも戦績を間違いなく入力するのが大変で、
出来れば、順位表は戦績表の横に作って、戦績表の数値を利用するように
作ったがベターでしょう。

とりあえず、順位表の簡単な例を、載せておきます。

Qエクセル2007で総当り表を作りたいです。

エクセル2007で俗に言う総当り表を作りたいのですが、分からないことがあり作成が進みません。
あれこれ調べてみたのですが私自身関数が得意というわけでもなく…こちらで質問させていただきます。

画像のように

(1)2行目のデータを、関数・オートフィルを用いて2列目に並べなおす
(2)同一のデータ同士が当たらないように、斜めに線を(自動で)引く

という状態にしたいと考えています。
それぞれ、どのような設定・関数を用いればよいのでしょうか?

Aベストアンサー

こんばんは!
質問の操作に関しては関数云々というより、コツコツ手を動かして操作するしかないと思います。
(1)2行目データを範囲指定 → 右クリック → コピー
(2)A3セルを選択 → 右クリック → 形式を選択して貼り付け → 「行列を入れ替える」にチェックを入れOK
(3)Ctrlキーを押しながら斜線を入れたいセルを選択 → 右クリック → セルの書式設定 → 「罫線」タブで「右下がりの斜線」を選択しOK
(4)最後にA2セル~最終セルを選択 → 罫線の「格子」を選択しOK

こういった流れになると思います。

これを自動で!というコトであればVBAになってしまいますが、一例です。
表を作成したい元データはB2セルから列方向に並んでいるとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim j As Long, lastCol As Long
lastCol = Cells(2, Columns.Count).End(xlToLeft).Column
Range(Cells(2, "B"), Cells(2, lastCol)).Copy
Range("A3").PasteSpecial Paste:=xlPasteAll, Transpose:=True
For j = 2 To lastCol + 1
Cells(j, j - 1).Borders(xlDiagonalDown).LineStyle = xlContinuous
Next j
With Range("A2").CurrentRegion
.Borders.LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
End With
End Sub 'この行まで

※ おそらく一度だけの操作になると思いますので、
わざわざマクロでやるよりご自身で手を動かした方が良いと思います。m(_ _)m

こんばんは!
質問の操作に関しては関数云々というより、コツコツ手を動かして操作するしかないと思います。
(1)2行目データを範囲指定 → 右クリック → コピー
(2)A3セルを選択 → 右クリック → 形式を選択して貼り付け → 「行列を入れ替える」にチェックを入れOK
(3)Ctrlキーを押しながら斜線を入れたいセルを選択 → 右クリック → セルの書式設定 → 「罫線」タブで「右下がりの斜線」を選択しOK
(4)最後にA2セル~最終セルを選択 → 罫線の「格子」を選択しOK

こういった流れになると思...続きを読む

QRANK関数の使った星取表

RANK関数を使って以下の順位をつけたいのですが、
どうやれば良いのでしょうか?(勝点で並んだとき、得失点で順位をつけたい)

  勝点 得失点 順位
A  6   5    1
B  3   -2   3
C  3   6    2
D  1   2    4

どなたか教えてください。

Aベストアンサー

得失点と順位の列の間に1列挿入し、
C2に
=A2*100+B2 ←勝点を100倍して重みをつけています
D2に
=RANK(C2,$C$2:$C$5)
として下までコピーしてはいかがでしょうか?

Q「ご連絡いたします」は敬語として正しい?

連絡するのは、自分なのだから、「ご」を付けるのは
おかしいのではないか、と思うのですが。
「ご連絡いたします。」「ご報告します。」
ていうのは正しい敬語なのでしょうか?

Aベストアンサー

「お(ご)~する(いたす)」は、自分側の動作をへりくだる謙譲語です。
「ご連絡致します」も「ご報告致します」も、正しいです。

文法上は参考URLをご覧ください。

参考URL:http://www.nihongokyoshi.co.jp/manbou_data/a5524170.html

Q有限会社を英語で書くと?

たとえば「有限会社イロハ」という会社名を英語で
書くにはどう書けばいいのでしょうか?
教えて下さい。

Aベストアンサー

corporate
(株式)会社の,企業の


corporation
(米国)有限会社((英国)limited liability company); 株式会社. 略:Corp.


limited
有限(責任)会社 (limited company).


limited company
有限(責任)会社 (=limited-liability company) 《株主の責任が所有株式の額面金額に限られる会社で, 株式が公開されている public limited company と非公開の private limited company がある; 後者は社名のあとに Limited または略字 Ltd(.) を付記する》.


incorporate
…を法人[団体組織]にする;(米国)有限[株式]会社にする


incorporated
(米国)〈会社が〉法人組織の,有限責任の:an incorporated company 有限(責任)会社(英国の limited(-liability) company に当たる). Inc. と略して社名の後につける.



と辞書に有りますので、

1  Iroha Ltd.
1' Iroha Limited

又は、
(2  Iroha Corp.)
(2' Iroha Inc.)

の(順で)どれでも良いように思われます。

少なくとも、一般的な株式会社として使われている、

Iroha Co. Ltd.

では、ご質問のご趣旨に沿わないかと思われます。

corporate
(株式)会社の,企業の


corporation
(米国)有限会社((英国)limited liability company); 株式会社. 略:Corp.


limited
有限(責任)会社 (limited company).


limited company
有限(責任)会社 (=limited-liability company) 《株主の責任が所有株式の額面金額に限られる会社で, 株式が公開されている public limited company と非公開の private limited company がある; 後者は社名のあとに Limited または略字 Ltd(.) を付記する》.


incorporate
…を法人[団体組織]にする;(米国...続きを読む

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。

Qエクセル 星を表示する関数(REPT関数?)

どなたか教えて下さい。

数式の結果が、例えば30%の時に星を3つ、80%の時に8つ・・と表示するような関数がありますか?
REPT関数を使ってみましたが%表示の時には無効のようなのですが・・・。

よい方法をご存知の方がいらっしゃいましたら教えて下さい。
よろしくお願いします。

Aベストアンサー

30%等の数字がA列、星の表示列がB列と仮定します。

A1セルの内容(例えば)
25

B1セルの内容
=REPT("☆",A1/10)

こうすれば、ご希望通りの星の数は表示されます。
但し…10未満の場合は空白になります。


人気Q&Aランキング

おすすめ情報