1

各行に次のフィールドが含まれるように、料金を Excel に出力する調整と比較するレポートがあるとします。

  • 口座番号
  • 充電日
  • オリジナル品番
  • 調整項目数
  • 元の数量
  • 調整済み数量
  • 元の金額
  • 調整額
  • 元の投稿日
  • 調整後の投稿日

ユーザーが各レコードの変更を見つけるのに役立つビューを Excel で作成できるようにする必要があります。次のように、各レコードを 2 行で表示したいと考えています。

アカウント | 日付 | O. アイテム | O. 数量 | O.金額 | O.ポスト
         | | | | A. アイテム | A. 数量 | A.金額 | ポスト             

このようにレコードをグループ化できる Excel に組み込まれているものはありますか? この場合、VBA はオプションではありません。

アカウントと日付の下のセルがそれらの値を複製しても問題ありません。各レコードを区切るのに役立つある種の交互行効果を得ることができれば、ボーナスポイントです (必要に応じて後で vba で自分で行うことができます)。

4

6 に答える 6

2

少しトリッキーですが、実行可能です。現在調査中です、お待ちください。

さて、アイデアはこれです。

次のレイアウトがあります。

/| あ | ビ | シー | D | ふ |
----------+---------+---------+---------+-------- -+
1| 口座番号 | データ1 | データ 1' | データ2 | データ 2' |
2| 1 | 10 | 11 | | | b |
3| 2 | 100 | 108 | | | | |
4| 3 | 50 | 55 | ふ | グラム |

2 番目のシートを作成します。

/| あ | ビ | シー | D |
-------+-----+-----------------------------+------ -----------------------+
1| A/O | 参照 | データ1 | データ2 |
2| あ | 2 | =INDIRECT("シート 1!B" & $B2) | =INDIRECT("Sheet1!D" & $B2) |
3| お | 2 | =INDIRECT("Sheet1!C" & $B3) | =INDIRECT("Sheet1!E" & $B3) |
4| あ | 3 | =INDIRECT("シート 1!B" & $B4) | =INDIRECT("Sheet1!D" & $B4) |
5| お | 3 | =INDIRECT("Sheet1!C" & $B5) | =INDIRECT("Sheet1!E" & $B5) |

私の現在のモデルでは、列「A/0」と「Ref」は手動です。おそらくそれらを自動化する方法がありますが、私はそれをシンプルにしたかったのです。Sheet1 の任意の長さの入力テーブルをカバーするように入力するとうまくいきます。

于 2008-11-04T16:20:47.763 に答える
1

簡単な回避策は、条件付き書式を使用することです (指示は Office 2007 用です)。

  1. 「調整済み」列を強調表示します (これが列 D で、元が列 C であるとします)
  2. 「条件付き書式」をクリック
  3. 「新しいルール...」をクリックします。
  4. 最後の項目「数式を使用して、書式設定するセルを決定する」をクリックします
  5. C1 <> D1を入力してください
  6. フォーマット スタイルを選択します。

ルールを適用すると、一致しないすべてのエントリが選択したスタイルで強調表示されます。

于 2008-11-04T16:28:42.473 に答える
1

これも間接で行いました。2 番目のシートの数式は次のようになります。

=INDIRECT("ソース!A" & INT(ROW()/2)+1)

列のソースを示す文字をハードコーディングすると、正しい行から計算が自動的に選択されます。必要なだけコピーする必要があります。

于 2008-11-04T16:51:27.357 に答える
0

プログラミングでしかできないことだと思います(ねえ、これはプログラミング関連のサイトです)。

VBA を使用できない場合、VB.Net または C# を使用できますか?

于 2008-11-04T16:23:50.893 に答える
0

私は数年前に VBA でこれを正確に実行しましたが、うまくいきました。Interops で C# を使用して同じことができると思いますか?

何が追加、削除、変更されたかがわかります。最後に、並べ替えとフィルタリングが簡単なレポートを作成します。

VBA を使用できない理由はありますか? また、他にどのようなオプションがありますか?

Excel 関数を使用してデータを相互参照することもできますが、これは Excel のパワー ユーザーではない人にとっては非常に複雑になる可能性があります。Excel 数式の一般的なヘルプ

編集: Find Index Offset VLookup Match などの関数が必要になります。これはすべて、それらを組み合わせることで実行できます。唯一の欠点は、数式の長さに制限があることです。この制限に達したら、ロジックを複数の列または行に分割します。

編集: VBA を 1 つのワークブックに統合し、テンプレートを保存することができます。比較するたびに、このテンプレートを使用して比較を実行します。この方法では、展開は必要ありません。ファイルをコピーして使用するだけです。

編集:レコードが追加または削除されたときに、これらのレコードが配置される場所を制御できないため、Tomalak によって提案されたソリューションは機能しない可能性があります。キーが一致する行を見つけて、そこから作業する必要があります。

于 2008-11-04T16:26:33.367 に答える
0

条件付き書式は、セルごとに最大 3 つの条件を設定できるため、両方の仕事を行うことができます。

  1. このような検証式を使用して、(たとえば)赤い太字のテキストを使用して、異なるセルを強調表示できます

    例 =(DataA!C8 <> DataB!C8)

  2. このような数式を使用して、交互の行を陰影付けできます (セル C8 で使用されているように)

    例 =(MOD(CELL("行",C8),2)=0)

偶数行をシェーディングします。もちろん、代わりに奇数行を陰影付けするには、数式の最後で =0 の代わりに =1 を使用します。

于 2008-11-04T22:15:46.830 に答える